05 Desarrollo iterativo e incremental
Desarrollo iterativo e incremental
Parte: Fundamentos ágiles
Sección de la Metodología Ensamble.
El proceso de desarrollo iterativo e incremental es un enfoque que combina estrategias iterativas e incrementales para la construcción de software. Este proceso permite obtener feedback rápido y adaptarse a los cambios durante el desarrollo del producto. Permite construir software de forma gradual, adaptándose a los cambios y obteniendo feedback continuo, lo que aumenta las posibilidades de éxito del proyecto.
A continuación, se describen los aspectos clave de este proceso:
- Desarrollo iterativo:
- Consiste en realizar bosquejos o esqueletos de la funcionalidad que se refinan en iteraciones posteriores.
- Implica retrabajo sobre las partes incompletas de la funcionalidad.
- Se agenda tiempo para revisar y mejorar el producto en cada iteración.
- Desarrollo incremental:
- Consiste en dividir el producto en partes que se construyen gradualmente y se entregan de forma completa.
- Cada incremento funcional está listo para implementarse en producción.
- No requiere retrabajo, ya que cada parte tiene calidad de producción.
- Se enfoca en el planeamiento y la entrega de valor continuo.
- Combinación de estrategias:
- Al inicio del proyecto, se abordan User Stories que corresponden a la estrategia iterativa para construir el esqueleto de la aplicación y su arquitectura.
- A medida que avanza el desarrollo, se trabaja con más User Stories que corresponden a la estrategia incremental.
- Iteraciones de duración fija:
- El desarrollo se divide en slots de tiempo de duración fija, llamados iteraciones (o Sprints en Scrum).
- Al comienzo de cada iteración, se selecciona un conjunto de funcionalidades que se considera apropiado para ese período.
- Al finalizar cada iteración, se mide la capacidad real del equipo (Velocity) y se inspecciona qué funcionó y qué no.
- Se utiliza esta información para establecer acciones de mejora y modificar el plan.
- Beneficios del desarrollo iterativo e incremental:
- Crear un plan ágil: Permite tener un plan liviano, orientado a funcionalidades.
- Recibir feedback temprano: Permite que el Product Owner se involucre en el desarrollo, brindando un feedback útil para moldear el producto de acuerdo con sus necesidades.
- Amplificar el aprendizaje: Iterar amplifica el aprendizaje y maximiza el valor del producto final.
- Aumentar la calidad: Se brinda un feedback rápido acerca de la calidad a partir del testeo de cada incremento, en lugar de hacerlo al final.
- Adaptarse al cambio: Permite adaptarse al cambio de forma eficiente.
- Hacer releases parciales: Permite realizar releases cuando se completa un conjunto de User Stories que representan un ciclo completo de funcionalidad.
- Consideraciones adicionales:
- Es importante maximizar el flujo y minimizar el trabajo en progreso.
- Se debe buscar la calidad de producción en cada incremento.
- El Product Owner y los usuarios de negocio trabajan de la mano con los desarrolladores para construir el producto que desean, comunicando claramente y validando cada incremento.
← Planeamiento continuo · Índice · Desarrollo guiado por pruebas (TDD) →