El desarrollo ágil de software refiere a métodos de ingeniería del software basados en el desarrollo iterativo e incremental, donde los requisitos y soluciones evolucionan mediante la colaboración de grupos auto organizados y multidisciplinarios. Existen muchos métodos de desarrollo ágil; la mayoría minimiza riesgos desarrollando software en lapsos cortos. El software desarrollado en una unidad de tiempo es llamado una iteración, la cual debe durar de una a cuatro semanas. Cada iteración del ciclo de vida incluye: planificación, análisis de requisitos, diseño, codificación, revisión y documentación. Una iteración no debe agregar demasiada funcionalidad para justificar el lanzamiento del producto al mercado, sino que la meta es tener una «demo» (sin errores) al final de cada iteración. Al final de cada iteración el equipo vuelve a evaluar las prioridades del proyecto.
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).
Métodos ágiles
Algunos métodos ágiles de desarrollo de software:
- Adaptive Software Development (ASD)
- Agile Unified Process (AUP)
- Crystal Clear
- Feature Driven Development (FDD)
- Lean Software Development (LSD)
- Kanban
- Open Unified Process (OpenUP)
- Programación Extrema (XP)
- Método de desarrollo de sistemas dinámicos (DSDM)
- Scrum
Uso de métodos agiles
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.
Y los que las usan, ¿Por qué razón o razones lo hacen?:
· Para reducir el tiempo de desarrollo: 45%
· Para mejorar la calidad: 43%
· Para reducir costes: 23%
· Para alinear el desarrollo con los objetivos de negocio: 39%
· Otras razones: 12%.
Métodos rápidos
Reduce el tiempo del ciclo de vida del software al desarrollo en primera instancia una versión prototipo y después integrar la funcionalidad de manera iterativa para satisfacer los requisitos del cliente y controlar todo el ciclo de desarrollo.
RAD (Desarrollo rápido de aplicaciones)
Consiste en un ciclo de desarrollo corto basado en 3 fases (diseño-requisitos-construcción) con un plazo de entrega ideal de 90 a 120 días como máximo.
El desarrollo adaptativo de software (DAS) fue propuesto por Jim Highsmith como una técnica para elaborar software y sistemas complejos. Los fundamentos filosóficos del DAS se centran en la colaboración humana y en la organización propia del equipo. Highsmith argumenta que un enfoque de desarrollo adaptativo basado en la colaboración es “tanto una fuente de orden en nuestras complejas interacciones, como de disciplina e ingeniería”.
Él define un “ciclo de vida” del DAS que incorpora tres fases: especulación, colaboración y aprendizaje.
DSDM (Método de desarrollo de sistema dinámico)
Se desarrollo para complementar lo que le faltaba al método RAD al proporcionar una estructura que tiene en cuenta el ciclo de desarrollo completo.
UP (Proceso unificado)
Es un proceso de desarrollo iterativo y creciente, significa que el proyecto se divide en fases más cortas y que se envía una nueva versión gradual al final de cada fase.
RUP (Proceso unificado racional)
Método de desarrollo interactivo promovido por la compañía Rational software de IBM, especifica principalmente la constitución del equipo y las escalas de tiempo.