Ciclo de vida de desarrollo de software (SDLC)

Definición

El ciclo de vida de desarrollo de software (SDLC) no es más que una metodología con procesos claramente definidos para crear software.

Debido a su similitud con los métodos científicos de investigación, es un proceso que promete producir software de alta calidad en el menor tiempo posible reduciendo su impacto en los costos. En otras palabras, es un proceso costo-efectivo de desarrollo.

SDLC proporciona un flujo de fases bien estructurado que ayuda a cualquier organización a producir software que está bien probado y listo para su uso en producción, de manera eficaz.

Modelo tradicional

De manera tradicional, el SDLC (tipo cascada, que es el más frecuente) se subdivide en las siguientes etapas:

  1. Análisis de requerimientos y planificación
  2. Diseño de la arquitectura
  3. Desarrollo de software
  4. Pruebas
  5. Despliegue
  6. Operación y mantenimiento

Sin embargo, en lo que compete a este curso, estaremos conversando un modelo diferente, el “Agile SDLC”.

Modelo ágil

El modelo Agile SDLC es una combinación de modelos de procesos iterativos e incrementales centrados en la adaptabilidad del proceso y la satisfacción del cliente mediante la entrega rápida de productos de software en funcionamiento.

Los métodos ágiles dividen el producto en pequeñas versiones incrementales. Estas compilaciones se proporcionan en iteraciones. Cada iteración suele durar entre una y tres semanas. Cada iteración involucra equipos multifuncionales que trabajan simultáneamente en varias áreas como:

  • Planificación
  • Análisis de requerimientos
  • Diseño
  • Desarrollo
  • Pruebas unitarias
  • Test de aceptación

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

Modelo ágil vs. Modelo tradicional

Agile se basa en los métodos de desarrollo de software adaptativo, 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 funciones exactas que se entregarán en los próximos meses o durante el ciclo de vida del producto.

Los métodos predictivos dependen completamente del análisis de requisitos y la planificación realizada al comienzo del ciclo. Cualquier cambio a incorporar pasa por una estricta gestión y priorización de control de cambios.

Agile utiliza un enfoque adaptativo donde no hay una planificación detallada y hay claridad sobre las tareas futuras solo con respecto a las características que deben desarrollarse. Existe un desarrollo impulsado por características y el equipo se adapta dinámicamente a los requisitos cambiantes del producto. El producto se prueba con mucha frecuencia, a través de las iteraciones de despliegue, lo que minimiza el riesgo de fallas importantes en el futuro.

La interacción con el cliente es 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.