resumen de metodologías ágiles

Resumen de Metodologías Agiles
El desarrollo de software no es una tarea fácil.
Prueba de ello es que existen numerosas propuestas
metodológicas que inciden en distintas dimensiones del proceso de desarrollo.
Por una parte tenemos aquellas propuestas más tradicionales que se centran especialmente en el control del proceso, estableciendo rigurosamente las actividades involucradas, los artefactos que se deben producir, y las
herramientas y notaciones que se usarán.
Estas propuestas han demo strado ser efectivas y necesarias en un gran número de proyectos, pero también han presentado problemas en otros muchos. Una posible mejora es incluir en los procesos de desarrollo más actividades, más artefactos y más restricciones, basándose en los puntos débiles detectados.
Sin embargo, el resultado final sería un proceso de desarrollo más complejo que puede incluso limitar la propia habilidad del equipo para llevar a cabo el proyecto.
Otra aproximación es centrarse en otras dimensiones, como por ejemplo el factor humano o el producto software. Esta es la filosofía de las metodologías ágiles, las cuales dan mayor valor al individuo, a la colaboración con el cliente y al des arrollo incremental del software con iteraciones muy cortas .
Este enfoque está mostrando su efectividad en proyectos con requisitos muy cambiantes y cuando se exige reducir drásticamente los tiempos de desarrollo pero manteniendo una alta calidad.
Las metodologías ágiles están revolucionando la manera de producir software, y a la vez generando un amplio debate entre sus seguidores y quienes por escepticismo o convencimiento no las ven como alternativa para las metodologías tradicionales.
En este trabajo se presenta resumidamente el contexto en el que surgen las metodologías ágiles, sus valores, principios y comparación con las metodologías tradicionales.
Además se describen brevemente las principales propuestas, especialmente Programación Extrema (eXtreme Programming, XP) la metodología ágil más popular en la actualidad.
1- INTRODUCCIóN
En las dos últimas décadas las notaciones de modelado y posteriormente las herramientas
pretendieron ser las "balas de plata" para el éxito en el desarrollo de software, sin embargo, las
expectativas no fueron satisfechas.
Esto se debe en gran parte a que otro importante elemento, la metodología de desarrollo, había sido postergado. De nada sirven buenas notaciones y herramientas si no se proveen directivas para su aplicación. Así, esta década ha comenzado con un creciente interés en metodologías de desarrollo.
Hasta hace poco el proceso de desarrollo llevaba asociada un marcado énfasis en el control del proceso mediante una rigurosa definición de roles, actividades y artefactos, incluyendo modelado y documentación detallada. Este esquema "tradicional" para abordar el desarrollo de software ha demostrado ser efectivo y necesario en proyectos de gran tamaño (respecto a tiempo y recursos), donde por lo general se exige un alto grado de ceremonia en el proceso.
Sin embargo, este enfoque no resulta ser el más adecuado para muchos de los proyectos actuales donde el entorno del sistema es muy cambiante, y en donde se exige reducir drásticamente los tiempos de desarrollo pero manteniendo una alta calidad.
Ante las dificultades para utilizar metodologías tradicionales con estas restricciones de tiempo y flexibilidad, muchos equipos de desarrollo se resignan a prescindir del "buen hacer" de la ingeniería del software, asumiendo el riesgo que ello conlleva.
En este escenario, las metodologías ágiles emergen como una posible respuesta para llenar ese
vacío metodológico. Por estar especialmente orientadas para proyectos pequeños, las
metodologías ágiles constituyen una solución a medida para ese entorno, aportando una elevada
simplificación que a pesar de ello no renuncia a las prácticas esenciales para asegurar la calidad
del producto.
Las metodologías ágiles son sin duda uno de los temas recientes en ingeniería de software que
están acaparando gran interés. Prueba de ello es que se están haciendo un espacio destacado en
la mayoría de conferencias y workshops celebrados en los últimos años. Es tal su impacto que
actualmente existen 4 conferencias internacionales de alto nivel y específicas sobre el tema.
Además ya es un área con cabida en prestigiosas revistas internacionales. En la comunidad de la
ingeniería del software, se está viviendo con intensidad un debate abierto entre los partidarios de
las metodologías tradicionales (referidas peyorativamente como "metodologías pesadas") y
aquellos que apoyan las ideas emanadas del "Manifiesto Ágil" . La curiosidad que siente la
mayor parte de ingenieros de software, profesores, e incluso alumnos, sobre las metodologías
ágiles hace prever una fuerte proyección industrial.
Por un lado, para muchos equipos de desarrollo el uso de metodologías tradicionales les resulta muy lejano a su forma de trabajo actual considerando las dificultades de su introducción e inversión asociada en formación y herramientas. Por otro, las características de los proyectos para los cuales las metodologíaságiles han sido especialmente pensadas se ajustan a un amplio rango de proyectos industriales de desarrollo de software; aquellos en los cuales los equipos de desarrollo son pequeños, con plazos reducidos, requisitos volátiles, y/o basados en nuevas tecnologías.
Este artículo está organizado como sigue. En la sección 2 se introducen las principales
características de las metodologías ágiles, recogidas en el Manifiesto y se hace una comparación
con las tradicionales. La sección 3 se centra en eXtreme Programming (XP), presentando sus
características particulares, el proceso que se sigue y las prácticas que propone. En la sección 4
se citan otros métodos ágiles, enumerándose sus principales características. Finalmente aparecen
las conclusiones.