Desarrollo de software adaptativo - Ciclo de vida

El desarrollo de software adaptativo ha evolucionado a partir de las prácticas de RAD. Los aspectos del equipo también se agregaron a estas prácticas. Las empresas de Nueva Zelanda a Canadá, para una amplia gama de proyectos y tipos de productos, han utilizado el desarrollo de software adaptativo.

Jim Highsmith publicó Adaptive Software Development en 2000.

Las prácticas de desarrollo de software adaptativo brindan la capacidad de adaptarse al cambio y son adaptables en entornos turbulentos con productos que evolucionan con poca planificación y aprendizaje.

Fases del ciclo de vida de los TEA

El desarrollo de software adaptativo es cíclico como el modelo evolutivo, con los nombres de fase que reflejan la imprevisibilidad en los sistemas complejos. Las fases en el ciclo de vida del desarrollo adaptativo son:

  • Especular
  • Colaborar
  • Aprender

Estas tres fases reflejan la naturaleza dinámica del desarrollo de software adaptativo. El desarrollo adaptativo reemplaza explícitamente el determinismo con la emergencia. Va más allá de un simple cambio en el ciclo de vida a un cambio más profundo en el estilo de gestión. Adaptive Software Development tiene un ciclo de vida dinámico Speculate-Collaborate-Learn.

El ciclo de vida de desarrollo de software adaptativo se centra en los resultados, no en las tareas, y los resultados se identifican como características de la aplicación.

Ciclo de vida de desarrollo de software adaptativo

Especular

El término plan es demasiado determinista e indica un grado de certeza razonablemente alto sobre el resultado deseado. El objetivo implícito y explícito de conformidad con el plan restringe la capacidad del gerente de dirigir el proyecto en direcciones innovadoras.

En Adaptive Software Development, el término plan se reemplaza por el término especular. Mientras especula, el equipo no abandona la planificación, pero reconoce la realidad de la incertidumbre en problemas complejos. Especulate fomenta la exploración y la experimentación. Se recomiendan iteraciones con ciclos cortos.

Colaborar

Las aplicaciones complejas no se crean, evolucionan. Las aplicaciones complejas requieren que se recopile, analice y aplique un gran volumen de información al problema. Los entornos turbulentos tienen altas tasas de flujo de información. Por lo tanto, las aplicaciones complejas requieren que se recopile, analice y aplique un gran volumen de información al problema. Esto da como resultado diversos requisitos de conocimiento que solo pueden manejarse mediante la colaboración del equipo.

Colaborar requeriría la capacidad de trabajar conjuntamente para producir resultados, compartir conocimientos o tomar decisiones.

En el contexto de la gestión de proyectos, la colaboración representa un equilibrio entre la gestión con técnicas de gestión tradicionales y la creación y mantenimiento del entorno de colaboración necesario para la emergencia.

Aprender

La parte de Aprendizaje del ciclo de vida es vital para el éxito del proyecto. El equipo tiene que mejorar sus conocimientos constantemente, utilizando prácticas como:

  • Revisiones técnicas
  • Retrospectivas del proyecto
  • Grupos de enfoque del cliente

Las revisiones deben hacerse después de cada iteración. Tanto los desarrolladores como los clientes examinan sus supuestos y usan los resultados de cada ciclo de desarrollo para conocer la dirección del siguiente. El equipo aprende

  • Sobre cambios de producto

  • Cambios más fundamentales en los supuestos subyacentes sobre cómo se están desarrollando los productos.

Las iteraciones deben ser cortas, para que el equipo pueda aprender de los errores pequeños en lugar de los grandes.

Especular - Colaborar - Aprender el ciclo en su conjunto

Como se observa en el ciclo Speculate-Collaborate-Learn, dado anteriormente, es obvio que las tres fases son no lineales y se superponen.

Observamos lo siguiente desde un marco adaptativo.

  • Es difícil colaborar sin aprender o aprender sin colaborar.

  • Es difícil especular sin aprender o aprender sin especular.

  • Es difícil especular sin colaborar o colaborar sin especular.