SDLC - Modelo ágil

El modelo SDLC ágil es una combinación de modelos de procesos iterativos e incrementales con enfoque en la adaptabilidad del proceso y la satisfacción del cliente mediante la entrega rápida de un producto de software funcional. Los métodos ágiles dividen el producto en pequeñas construcciones incrementales. Estas compilaciones se proporcionan en iteraciones. Cada iteración suele durar de una a tres semanas. Cada iteración implica equipos multifuncionales que trabajan simultáneamente en varias áreas como:

  • Planning
  • Análisis de requerimientos
  • Design
  • Coding
  • Pruebas unitarias y
  • Test de aceptación.

Al final de la iteración, se muestra un producto funcional al cliente y a las partes interesadas importantes.

¿Qué es Agile?

El modelo ágil cree que cada proyecto debe manejarse de manera diferente y los métodos existentes deben adaptarse para adaptarse mejor a los requisitos del proyecto. En Agile, las tareas se dividen en cuadros de tiempo (pequeños marcos de tiempo) para ofrecer funciones específicas para un lanzamiento.

Se adopta un enfoque iterativo y se entrega la compilación de software funcional después de cada iteración. Cada compilación es incremental en términos de características; la construcción final contiene todas las características requeridas por el cliente.

Aquí hay una ilustración gráfica del modelo ágil:

El proceso de pensamiento ágil había comenzado temprano en el desarrollo del software y comenzó a popularizarse con el tiempo debido a su flexibilidad y adaptabilidad.

Los métodos ágiles más populares incluyen Rational Unified Process (1994), Scrum (1995), Crystal Clear, Extreme Programming (1996), Adaptive Software Development, Feature Driven Development y Dynamic Systems Development Method (DSDM) (1995). Estos ahora se conocen colectivamente comoAgile Methodologies, después de la publicación del Manifiesto Ágil en 2001.

Los siguientes son los principios del Manifiesto Ágil:

  • Individuals and interactions - En el desarrollo ágil, la autoorganización y la motivación son importantes, al igual que las interacciones como la ubicación conjunta y la programación por pares.

  • Working software - El software de trabajo de demostración se considera el mejor medio de comunicación con los clientes para comprender sus requisitos, en lugar de simplemente depender de la documentación.

  • Customer collaboration - Como los requisitos no se pueden recopilar por completo al comienzo del proyecto debido a varios factores, la interacción continua con el cliente es muy importante para obtener los requisitos adecuados del producto.

  • Responding to change - Agile Development se centra en respuestas rápidas al cambio y desarrollo continuo.

Modelos SDLC tradicionales y ágiles

Agile se basa en adaptive software development methods, mientras que los modelos SDLC tradicionales como el modelo en cascada se basan en un enfoque predictivo. Los equipos predictivos en los modelos SDLC tradicionales generalmente trabajan con una planificación detallada y tienen un pronóstico completo de las tareas y características exactas que se entregarán en los próximos meses o durante el ciclo de vida del producto.

Los métodos predictivos dependen completamente de la requirement analysis and planninghecho al comienzo del ciclo. Los cambios a incorporar pasan por un estricto control de gestión y priorización de cambios.

Agile utiliza un adaptive approachdonde no hay una planificación detallada y hay claridad sobre las tareas futuras solo con respecto a las características que deben desarrollarse. Hay un desarrollo impulsado por funciones y el equipo se adapta a los requisitos cambiantes del producto de forma dinámica. El producto se prueba con mucha frecuencia, a través de las iteraciones de lanzamiento, minimizando el riesgo de fallas importantes en el futuro.

Customer Interactiones la columna vertebral de esta metodología Agile, y la comunicación abierta con documentación mínima son las características típicas del entorno de desarrollo Agile. Los equipos ágiles trabajan en estrecha colaboración entre sí y suelen estar ubicados en la misma ubicación geográfica.

Modelo ágil: pros y contras

Los métodos ágiles están siendo ampliamente aceptados en el mundo del software recientemente. Sin embargo, es posible que este método no siempre sea adecuado para todos los productos. A continuación, se muestran algunos pros y contras del modelo Agile.

Las ventajas del modelo ágil son las siguientes:

  • Es un enfoque muy realista para el desarrollo de software.

  • Fomenta el trabajo en equipo y el entrenamiento cruzado.

  • La funcionalidad se puede desarrollar y demostrar rápidamente.

  • Los requisitos de recursos son mínimos.

  • Adecuado para requisitos fijos o cambiantes

  • Ofrece soluciones de trabajo parciales tempranas.

  • Buen modelo para entornos que cambian constantemente.

  • Reglas mínimas, documentación de fácil aplicación.

  • Permite el desarrollo y la entrega simultáneos dentro de un contexto planificado general.

  • Requiere poca o ninguna planificación.

  • Fácil de administrar.

  • Da flexibilidad a los desarrolladores.

Las desventajas del modelo ágil son las siguientes:

  • No apto para manejar dependencias complejas.

  • Más riesgo de sostenibilidad, mantenibilidad y extensibilidad.

  • Un plan general, un líder ágil y una práctica de gestión de proyectos ágil es una necesidad sin la cual no funcionará.

  • La gestión estricta de la entrega dicta el alcance, la funcionalidad que se entregará y los ajustes para cumplir con los plazos.

  • Depende en gran medida de la interacción con el cliente, por lo que si el cliente no lo tiene claro, el equipo puede ir en la dirección equivocada.

  • Existe una dependencia individual muy alta, ya que se genera una documentación mínima.

  • La transferencia de tecnología a los nuevos miembros del equipo puede ser un desafío debido a la falta de documentación.