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) →