Desarrollo de software adaptativo: evolución
Los modelos SDLC anteriores están más orientados a las prácticas de estabilidad, previsibilidad y rendimientos decrecientes. La industria, como las plataformas de Internet, se ha movido para aumentar los entornos de retorno, enfoques impredecibles, no lineales y rápidos.
El desarrollo de software adaptativo (ASD) ha evolucionado para abordar estos problemas. Se centra en la emergencia como el factor más importante desde la perspectiva de la gestión, para mejorar la capacidad de gestionar el desarrollo de productos.
En palabras de Jim Highsmith, “El marco de desarrollo de software adaptativo se basa en años de experiencia con metodologías tradicionales de desarrollo de software, consultoría, práctica y redacción de técnicas de desarrollo rápido de aplicaciones (RAD) y trabajo con empresas de software de alta tecnología para gestionar el desarrollo de sus productos. prácticas ”.
El modelo de cascada se caracteriza por la linealidad y la previsibilidad, con escasa retroalimentación. Puede verse como una secuencia dePlan → Build → Implement.
Los modelos del ciclo de vida evolutivo, como el modelo en espiral, trasladaron el enfoque determinista al adaptativo, con Plan → Build → Revise Cycles.
Sin embargo, la mentalidad de los practicantes siguió siendo determinista y la previsibilidad a largo plazo se convirtió en previsibilidad a corto plazo. Las prácticas de los modelos de ciclo de vida evolutivo como RAD son menos deterministas.
El ciclo de vida adaptativo
El modelo Adaptive se construye desde un punto de vista diferente. Aunque cíclico como el modelo evolutivo, los nombres de la fase reflejan la naturaleza impredecible de sistemas cada vez más complejos.
El desarrollo adaptativo va más allá de su herencia evolutiva de dos maneras clave:
Reemplaza explícitamente el determinismo con la emergencia.
Va más allá de un cambio en el ciclo de vida a un cambio más profundo en el estilo de gestión.
Las tres fases del ciclo de vida del desarrollo de software adaptativo son:
Speculate - Speculate reemplaza la planificación de palabras deterministas, planificación de especificaciones de producto o planificación de tareas de gestión de proyectos.
Collaborate - Colaborar representa establecer un equilibrio entre
Gestión en el sentido tradicional de gestión de proyectos, y
Crear y mantener el entorno colaborativo necesario para la emergencia.
Learn - Learn tiene como objetivo, tanto los desarrolladores como los clientes, utilizar los resultados de cada ciclo de desarrollo para conocer la dirección del siguiente.
Las actividades colaborativas crean productos, manteniendo el ritmo de los cambios en el entorno.