Veterano ciclo de vida iterativo e incremental

El motivo de este post viene a raíz de una reunión en la que se debatía el mejor ciclo de vida para un proyecto, y en la que alguien dijo: “el ciclo de vida iterativo e incremental es un riesgo ya que es algo nuevo, y no hay mucha experiencia”. Y como esto de que “el ciclo de vida iterativo e incremental es nuevo” ya lo había escuchado muchas veces, me dije, voy a dejar en el blog testimonio escrito de la “longevidad” de dicho ciclo de vida, así hago mi pequeña contribución en google a evitar que quieran seguir haciéndole “liftings”.

Un ciclo de vida iterativo e incremental es aquel en que se va liberando parte del producto periódicamente, iterativamente, poco a poco, y cada entrega es un incremento respecto a la anterior; cada fase (requisitos, análisis, diseño, etc.) se realiza varias veces. Lo cual difiere del desarrollo en cascada, donde las fases del ciclo de vida (requisitos, análisis, diseño, etc.) se realizan (en teoría) una única vez, y el inicio de una fase no comienza hasta que termina la fase que le precede.

Con la creciente popularidad de los métodos ágiles en muchas ocasiones se cree que el ciclo de vida iterativo e incremental es una práctica moderna, nueva frente al antiguo ciclo de vida en cascada, pero su aplicación data de… mitad de los años 50, y desde entonces ha sido ampliamente usado y se ha escrito mucho sobre él.

En 1950 la construcción del avión cohete X-15 supuso un hito en la aplicación del ciclo de vida iterativo e incremental, hasta el punto de que dicho ciclo de vida supuso una de las principales contribuciones al éxito del proyecto.

Aunque el proyecto X-15 no era un proyecto esencialmente de software, es importante mencionarlo porque algunos de los participantes en el mismo (con su correspondiente experiencia en dicho ciclo de vida) comenzaron a utilizarlo en la NASA en 1960 para el desarrollo software, en un proyecto llamado Mercury, del que a su vez algunos participantes en el mismo trabajarían después en IBM Federal Systems Division, donde también se aplicó el ciclo de vida iterativo en incremental al desarrollo software.

El proyecto Mercury (1960) trabajó con iteraciones diarias, aplicó revisiones técnicas a los cambios, y aplicó la técnica de planificar y escribir las pruebas antes de cada micro incremento (¿a alguien le recuerda esto a Extreme Programming?)

La primera (ver update al pie) referencia documental que describe y recomienda el desarrollo iterativo es de 1968, un informe de Brian Randell and F.W. Zurcher que trabajaban en el IBM T. J. Watson Research Center, y que se puede encontrar aquí.

Pues eso, ante todo veterano, el ciclo de vida iterativo e incremental.

UPDATE (2017). Por medio de un debate en Twitter, he dado con una referencia más antigua, es del 75,  en el artículo «Iterative Enhancement», de Basili y Turner, que puedes encontrar aquí http://www.cs.umd.edu/~basili/publications/journals/J04.pdf

Javier Garzás

21 comentarios en “Veterano ciclo de vida iterativo e incremental”

  1. Esto nos recuerda dos cosas:
    1. La longevidad del ciclo de vida iterativo e incremental, con proyectos que atestiguan su éxito.
    2. Que las «nuevas» metodologías y ciclos de vida que van apareciendo no son más que una mejora, evolución, adaptación, etc. de algo que se viene utilizando desde hace mucho.
    Buen post!

  2. Hola, otra cosa para hablar sería que los métodos ágiles usan iterativos E incrementales, no iterativos O incrementales, sobre esto también hay mucho lío. Saludos

  3. Pingback: El primer método ágil, DSDM | Javier Garzás

  4. Pingback: Algunos retos de los profesionales del software. La memoria histórica (2/4) | Javier Garzás

  5. Pingback: ¿CMMI o Métodos Ágiles? | Javier Garzás

  6. Pingback: Algunos buenos consejos para jefes de proyecto | Javier Garzás

  7. Pingback: Algunos retos de los profesionales del software (1/4) - Javier Garzás, sobre calidad software y otros temas relacionados

  8. Pingback: Scrum para Dummies (1/2). Las ideas de Scrum en 2 post de 5 min. - Javier Garzás, sobre calidad software y otros temas relacionados

  9. Pingback: El ciclo de vida iterativo e incremental y el riesgo de olvidarse del iterativo y quedarse solo con el incremental - Javier Garzás, sobre calidad software y otros temas relacionados

  10. Pingback: Historia de las metodologías Ágiles | Metodologías Ágiles

  11. Hace tres meses heredé un proyecto de Banca, hace 6 años que trabajo en Proyectos de bancarización. Leí tu CV y trabajo a diario con la gente de Telefónica ya que son proveedores de BBVA para algunos servicios en Medios de Pagos, Trabajo con Redsys, tengo como cliente a Inditex y todas sus tiendas. Lo lindo es que me encuentro en Uruguay y opero a través de un Proyecto de tipo IMBPD o BPO (outsorcing). Actualmente también estoy en Scotiabank. La cosa es que este proyecto heredado, consta de hacer una revisión de los permisos, funciones, consultas, reportes que tienen los usuarios del banco en el core que gestiona la gran mayoría de las operaciones. Utilizaban una metodología en cascada, este proyecto no había avanzado practicamente nada desde hacía un año. En tres meses avanzamos (a colgpe de ojo) casi un 50%, cosa que funcionó gracias al ciclo de vida incremental. Claro que recién comienzo este curso pero estoy muy ansioso por aplicar el ciclo de vida interativo y ver sus resultados.
    Un saludo.

  12. hola :tengo estas preguntas por resolver
    1)de ejemplo de sistema para un ciclo de vida iterativo
    2)de ejemplo de sistema para un ciclo de vida incremental

  13. ese tipo de métodos son interesantes, aunque la mayoría de los proyectos son cambiantes y supongo se tendrá que ir modificando no solo su forma sino el método también? eso es posible o existen diferentes alternativas a estos.

  14. En realidad en ciclo iterativo e incremental ha demostrado su eficacia no sólo en proyectos tecnológicos sino también en la construcción misma, y claro ejemplo es el BIM. Obviamente su aplicación no es total sino mixta con el ciclo cascada tradiconal.

  15. Jean Carlos Ordoñez

    Me parece muy importante, hace años mientras estudiaba en el Instituto se nos enseñó los pasos para crear software y base de datos, lo curioso es que era totalmente tradicional, veiamos que cuando publicamos el software e hicimos las pruebas aparecían nuevos casos que no nos habíamos percatado antes de diseñarlo, eso causó muchas dificultades para volver a rediseñar todo, aun cuando se conoce el ciclo de vida iterativo incremental no se ha estado aplicando correctamente…

  16. En verdad en un ciclo de vida interactivo enincremental permite mejorar las soluciones a partir de la experiencia del usuarios o tester. Al final la experiencia final del usuario la clave del éxito de un Desarrolo de software.

  17. Estoy siguiendo el curso desde miriadax.net
    Fijate que te has corregido mal:
    > La primera referencia documental que describe y recomienda el desarrollo iterativo es de 1968.
    > Por medio de un debate en Twitter, he dado con una referencia más antigua, es del 75…
    Pues el 75 no es más antiguo que el 68.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Ir arriba