Desarrollo ágil de software
El desarrollo ágil de software envuelve un enfoque para la toma de decisiones en los proyectos de software, que se refiere a métodos de ingeniería del software basados en el desarrollo iterativo e incremental, donde los requisitos y soluciones evolucionan con el tiempo según la necesidad del proyecto. Así el trabajo es realizado mediante la colaboración de equipos auto-organizados y multidisciplinarios, inmersos en un proceso compartido de toma de decisiones a corto plazo.
Cada iteración del ciclo de vida incluye: planificación, análisis de requisitos, diseño, codificación, pruebas y documentación. Teniendo gran importancia el concepto de "Finalizado" (Done), ya que el objetivo de cada iteración no es agregar toda la funcionalidad para justificar el lanzamiento del producto al mercado, sino incrementar el valor por medio de "software que funciona" (sin errores).
Los métodos ágiles enfatizan las comunicaciones cara a cara en vez de la documentación. La mayoría de los equipos ágiles están localizados en una simple oficina abierta, a veces llamadas "plataformas de lanzamiento" (bullpen en inglés). La oficina debe incluir revisores, escritores de documentación y ayuda, diseñadores de iteración y directores de proyecto. Los métodos ágiles también enfatizan que el software funcional es la primera medida del progreso. Combinado con la preferencia por las comunicaciones cara a cara, generalmente los métodos ágiles son criticados y tratados como "indisciplinados" por la falta de documentación técnica.
Historia
La definición moderna de desarrollo ágil de software evolucionó a mediados de la década de 1990 como parte de una reacción contra los métodos de "peso pesado", muy estructurados y estrictos, extraídos del modelo de desarrollo en cascada. El proceso originado del uso del modelo en cascada era visto como burocrático, lento, degradante e inconsistente con las formas de desarrollo de software que realmente realizaban un trabajo eficiente.
Los métodos de desarrollo ágiles e iterativos pueden ser vistos como un retroceso a las prácticas observadas en los primeros años del desarrollo de software (aunque en ese tiempo no había metodologías para hacerlo). En el año 2001, miembros prominentes de la comunidad se reunieron en Snowbird, Utah, y adoptaron el nombre de "métodos ágiles". Poco después, algunas de estas personas formaron la "alianza ágil", una organización sin fines de lucro que promueve el desarrollo ágil de aplicaciones. Muchos métodos similares al ágil fueron creados antes del 2000. Entre los más notables se encuentran: Scrum (1986), Crystal Clear (cristal transparente), programación extrema (en inglés eXtreme Programming o XP, 1996), desarrollo de software adaptativo, feature driven development, Método de desarrollo de sistemas dinámicos (en inglés Dynamic Systems Development Method o DSDM, 1995).
Métodos ágiles
Algunos métodos ágiles de desarrollo de software:
- Adaptive Software Development (ASD)
- Agile Unified Process
- Crystal Clear
- Feature Driven Development (FDD)
- Lean Software Development (LSD)
- Kanban (desarrollo)
- Open Unified Process (OpenUP)
- Programación Extrema (XP)
- Método de desarrollo de sistemas dinámicos (DSDM)
- Scrum
- G300
- 6D-BUM
Véase también
Bibliografía
- Cockburn, Alistair. Agile Software Development. Highsmith Series.
- Chin, Gary (2004). Agile Project Management: How to Succeed in the Face of Changing Project Requirements. AMACOM.
- Lasa, Carmen et al (2017). Métodos Ágiles. Scrum, Kanban, Lean. ANAYA.
- Martinez, Gustavo (2011). Coding, quality check and documentation (300%): Get them from the same development team!. VPD.
- Páez, Nicolás et al. (2014). Construcción de software: una mirada ágil. EDUNTREF.
- Moe, NB; Aurum, A; Dyba, T (2012). «Challenges of shared decisión -making: A multiple case study of agile software development» (pdf). Information and Software Technology (Trondheim, Norway) 54 (8): 853 - 861. Consultado el 30 de agosto de 2015.
Enlaces externos
- Manifiesto para el desarrollo ágil de software
- Recopilación de artículos sobre metodologías ágiles
- Articulo con las metodologías ágiles mas usadas actualmente.
- Resumen de los principios del desarrollo ágil. Cómo aplicar metodologías ágiles.
- Sitio web de la Comunidad Latinoamericana de Desarrollo Ágil de Software