BLOC Metodologis Agiles
-
Upload
kathyarifarias -
Category
Documents
-
view
41 -
download
0
description
Transcript of BLOC Metodologis Agiles
ESCUELA SUPERIOR POLITÉCNICA AGROPECUARIA DE
MANABÍ MANUEL FÉLIX LÓPEZ
CARRERA INFORMÁTICA
SEMESTRE SÉPTIMO PERÍODO ABRIL-AGOSTO/2015
METODOLOGIA AGILES
MATERIA:
INGENIERÍA DE SOFTWARE
AUTORA:
FARIAS CHICA LUISA KATERINE
FACILITADORA:
ING. HIRAIDA SANTANA
MISIÓN
Formación de profesionales íntegros que conjuguen ciencia, tecnología y valores en
su accionar, comprometidos con la sociedad en el manejo adecuado de programas
y herramientas computacionales de última generación.
VISIÓN
Ser referente en la formación de profesionales de prestigio en el desarrollo de
aplicaciones informáticas y soluciones de hardware.
CALCETA, ABRIL 2015
A Continuación le vamos hablar acerca de las metodologías agiles las cuales son importante ya
que son una serie de técnicas para la gestión de proyectos que han surgido como
contraposición a los métodos clásicos de gestión como CMMI. Aunque surgieron en el ámbito
del desarrollo de software, también han sido exportadas a otro tipo de proyectos.
Inicialmente, mucha gente asocia metodologías ágiles con falta de documentación o control
sobre el proyecto, pero esto es totalmente falso Lo que se vamos a tratar en este capítulo es
minimizar el impacto de las tareas que no son totalmente imprescindibles para conseguir el
objetivo del proyecto es por eso que debemos conocer acerca de lo que es una metodología
agiles y que importancia tiene en el mundo de desarrollos de software.
Impartir conocimientos sobre metodologías agiles para pretender aumentar la eficiencia de
las personas involucradas en el proyecto y, como resultado de ello, minimizar el costo de la
realización de aquellos .
Un modelo de desarrollo ágil, generalmente es un proceso Incremental,
(pequeños y frecuentes releases o entregas con ciclos rápidos), también
Cooperativo (Clientes y desarrolladores trabajan constantemente con una
comunicación muy fina y constante), sencillo (El método es fácil de aprender y
modificar para el equipo, es bien documentado por medio de libros o la Web) y
finalmente adaptativo (capaz de permitir cambios de último momento).
Su objetivo fue esbozar los valores y principios que deberían permitir a los
equipos desarrollar software rápidamente y respondiendo a los cambios que
puedan surgir a lo largo del proyecto. Se pretendía ofrecer una alternativa a los
procesos de desarrollo de software tradicionales, caracterizados por ser rígidos
y dirigidos por la documentación que se genera en cada una de las actividades
desarrolladas. Varias de las denominadas metodologías ágiles ya estaban
siendo utilizadas con éxito en proyectos reales, pero les faltaba una mayor
difusión y reconocimiento.
Un equipo ágil reconoce que el software es desarrollado por individuos que
trabajan en equipo, y que su capacidad, su habilidad para colaborar, es el
fundamento para el éxito del proyecto.
La agilidad puede aplicarse a cualquier proceso del software. Sin embargo,
para lograrlo es esencial que éste se diseñe en forma que permita al equipo del
proyecto adaptar las tareas y hacerlas directas, ejecutar la planeación de
manera que entienda la fluidez de un enfoque ágil del desarrollo, eliminar todos
los productos del trabajo excepto los más esenciales y mantenerlos esbeltos, y
poner el énfasis en una estrategia de entrega incremental que haga trabajar al
software tan rápido como sea posible para el cliente, según el tipo de producto
y el ambiente de operación.
Las metodologías tradicionales funcionan muy bien en proyectos donde el
problema es conocido y la solución al mismo está bien definida. En este
entorno es fácil analizar, diseñar y ejecutar una solución, pero totalmente
opuesto al entorno de una startup.
Una startup, por definición, es una organización temporal se mueve en un
entorno de extrema incertidumbre buscando un modelo de
negocio replicable y escalable.
Las metodologías tradicionales funcionan muy bien en proyectos donde el
problema es conocido y la solución al mismo está bien definida. En este
entorno es fácil analizar, diseñar y ejecutar una solución, pero totalmente
opuesto al entorno de una startup.
Por lo tanto, lo que debemos tener claro es que:
Los principios Lean Startup se encargan de “qué” construir.
Las metodologías ágiles se encargan de “cómo” hacerlo.
Los costos de hacer que esto funcione son mínimos, y el tiempo requerido no
perjudicará el resultado del proyecto. Pero, ¿qué pasa una vez transcurridos
algunos meses? El equipo está a la mitad de las pruebas de validación (algo
que ocurre cuando el proyecto está relativamente avanzado) y un participante
de importancia solicita que se haga un cambio funcional grande. Elcambio
requiere modificar el diseño de la arquitectura del software, el diseño y
construcción de tres componentes nuevos, hacer cambios en otros cinco
componentes, diseñar nuevas pruebas, etc. Los costos aumentan con rapidez,
y no son pocos el tiempo y el dinero requeridos para asegurar que se haga el
cambio sin efectos colaterales no intencionados.
.
un proceso de software ágil debe adaptarse incrementalmente. Para lograr la
adaptación incremental, un equipo ágil requiere retroalimentación con el cliente
(de modo que sea posible hacer las adaptaciones apropiadas). Un catalizador
eficaz para la retroalimentación con el cliente es un prototipo operativo o una
porción de un sistema operativo. Así, debe instituirse una estrategia de
desarrollo incremental. Deben entregarse incrementos de software (prototipos
ejecutables o porciones de un sistema operativo) en periodos cortos de tiempo,
de modo que la adaptación vaya a ritmo con el cambio (impredecible). Este
enfoque iterativo permite que el cliente evalúe en forma regular el incremento
de software, dé la retroalimentación necesaria al equipo de software e influya
en las adaptaciones del proceso que se realicen para aprovechar la
retroalimentación.
Uno de los principales focos de aplicación de las metodologías ágiles son los
proyectos tecnológicos. Cada una de ellas tiene sus fortalezas y sus
debilidades, pero no son excluyentes. En cada proyecto podemos adoptar una,
o varias, en función de las características del propio proyecto y del equipo.
Entre las metodologías ágiles más usadas se encuentran:
SCRUM. Es un marco de trabajo que nos proporciona una serie de herramientas y roles para, de una forma iterativa, poder ver el progreso y los resultados de un proyecto.
KANBAN. Se basa en una idea muy simple. Ésta es que el trabajo en curso (Work In Progress, WIP) debería limitarse y sólo deberíamos empezar con algo nuevo cuando un bloque de trabajo anterior haya sido entregado o ha pasado a otra función posterior de la cadena.
XP: Es una metodología ágil centrada en potenciar las relaciones interpersonales como clave para el éxito en desarrollo de software, promoviendo el trabajo en equipo, preocupándose por el aprendizaje de los desarrolladores y propiciando un buen clima de trabajo.
Si los miembros del equipo de software son los que van a generar las
características del proceson que van a aplicarse a la elaboración de software,
entre ellos debe existir cierto número de características clave, mismas que
debe compartir el equipo ágil como tal:
Competencia. En un contexto de desarrollo ágil (así como en la ingeniería de
software), la “competencia” incluye el talento innato, las habilidades específicas
relacionadas con el software y el conocimiento general del proceso que el
equipo haya elegido aplicar.
Enfoque común. Aunque los miembros del equipo ágil realicen diferentes
tareas y aporten habilidades distintas al proyecto, todos deben centrarse en
una meta: entregar al cliente en la fecha prometida un incremento de software
que funcione.
Colaboración. La ingeniería de software (sin importar el proceso) trata de
evaluar, analizar y usar la información que se comunica al equipo de software;
crear información que ayudará a todos los participantes a entender el trabajo
del equipo; y generar información (software de cómputo y bases de datos
relevantes) que aporten al cliente valor del negocio.
Capacidad para resolver problemas difusos. Los gerentes de software
deben reconocer que el equipo ágil tendrá que tratar en forma continua con la
ambigüedad y que será sacudido de manera permanente por el cambio.
Confianza y respeto mutuos. El equipo ágil debe convertirse en lo que
DeMarco y Lister[DeM98] llaman “pegado” (véase el capítulo 24). Un equipo
pegado tiene la confianza y respeto que son necesarios para hacer “su tejido
tan fuerte que el todo es más que la suma de sus partes” [DeM98].
Organización propia. La organización propia tiene cierto número de
beneficios técnicos, pero, lo que es más importante, sirve para mejorar la
colaboración y elevar la moral del equipo. En esencia, el equipo sirve como su
propio gerente. Ken Schwaber [Sch02] aborda estos aspectos cuando escribe:
“El equipo selecciona cuánto trabajo cree que puede realizar en cada iteración,
y se compromete con la labor.
Los métodos ligeros o agiles son otra opción para el desarrollo, muy aplicado y además presenta adeptos y gurús en contra, algunos expertos mencionan que los procesos agiles son una moda y quedaran ahí, sin embargo existen empresas que desde hace tiempo utilizan y han evolucionado gracias a dichos métodos.
A continuación un gráfico con una lista importante de empresas que usan metodologías de desarrollo ágil en algunos de sus proyectos.
Debido a que muchas organizaciones adoptan sólo un subconjunto de prácticas XP, debilitan la eficacia de todo el proceso. Los defensores contradicen esto al afirmar que la XP está en evolución continua y que muchas de las críticas que se le hacen han llevado a correcciones conforme maduran sus prácticas. Entre los aspectos que destacan algunos críticos de la XP están los siguientes.
Desde el surgimiento de estas revolucionarias metodologías que no solo nacen para el desarrollo de sistemas software sino para el management o desarrollo de productos los incrementos en adeptos se presentan gradualmente con el tiempo y las tecnologías.
Volatilidad de los requerimientos.
•Los defensores afirman que esto pasa sin importar el proceso que se aplique y que la XP proporciona mecanismos para controlar los vaivenes del alcance.
Necesidades conflictivas del cliente.
•En XP, el equipo mismo tiene la tarea de asimilar las necesidades de distintos clientes, trabajo que tal vez esté más allá del alcance de su autoridad.
Los requerimientos se expresan informalmente.
•Los defensores contraatacan diciendo que la naturaleza cambiantede los requerimientos vuelve obsoletos esos modelos y especificaciones casi tan pronto como se desarrollan.
Las metodologías agiles ayudan bastante en la elaboración de proyectos de
software como podemos ver en la imagen e arriba muchas personas de las
cuales usan estas metodologías son para reducir el tiempo de desarrollo
además de mejorar la calidad del producto o proyecto no tan solo eso sino
también para reducir costos y no solo estas serían las razones existen un sin
número de razones por los cuales muchos de los programadores utilizan
metodologías agiles y esto se debe a la ayuda de la ingeniería de software.
Reynoso B. s.f. Métodos Agiles en Desarrollo de Software, Introducción a
la Arquitectura de Software. Universidad de Buenos Aires: PDF. Consultado: 26
Abril 2015. Disponible en: http://www.microsoft.com/spanish/msdn/arquitectura.
Pressman. R. 2010. Ingeniería del Software Un Enfoque Práctico. 7ma ed.
University of Connecticut. McGraw-Hill Interamericana Editores, S.A.