search
top

El ciclo de vida iterativo e incremental y el riesgo de olvidarse del iterativo y quedarse solo con el incremental

Si en un ciclo de vida en cascada 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, en un ciclo de vida iterativo e incremental se va liberando partes del producto (prototipos) periódicamente, en cada iteración, y cada nueva versión, normalmente, aumenta la funcionalidad y mejora en calidad respecto a la anterior.

El ciclo de vida iterativo e incremental es una de las buenas prácticas de ingeniería del software más antiguas, su primer uso en el software se data en los 50 (te dejo este post donde hablamos del tema).

Además, el ciclo de vida iterativo e incremental es una de las bases de un proyecto ágil, más concretamente, con iteraciones cortas en tiempo, de pocas semanas, normalmente un mes y raramente más de dos.

Normalmente se habla, se lee, etc., “el ciclo de vida iterativo e incremental” (o incluso por defecto sólo el “el ciclo de vida iterativo”). Pero ello no quiere decir que iterativo e incremental sea lo mismo. De hecho, el desarrollo iterativo no implica, ni presupone el uso del incremental, y viceversa.

El problema es que muchas veces se olvida “la parte iterativa”, del “ciclo de vida iterativo e incremental”. Pero veamos antes qué implica incremental y qué iterativo.

El ciclo de vida incremental

Desarrollar por partes el producto software, para después integrarlas a medida que se completan. Un ejemplo de un desarrollo puramente incremental puede ser la agregación de módulos en diferentes fases. El agregar cada vez más funcionalidad al sistema.

El ciclo de vida iterativo

En cada ciclo, iteración, se revisa y mejora el producto. Un ejemplo de desarrollo iterativo es aquel basado en refactorizaciones (te dejo el post de introducción a la refactorización), en el que cada ciclo mejora más la calidad del producto. Es importante señalar que este ciclo no implica añadir funcionalidades en el producto, pero si revisión y mejora.

No olvides “la parte iterativa”, del “ciclo de vida iterativo e incremental”

De la unión del ciclo de vida iterativo y el incremental al final de cada iteración se consigue una versión más estable del software, de más calidad, y añadiendo además nuevas funcionalidades respecto a versiones anteriores.

Pero en la práctica, muchas veces nos encontramos con que los equipos olvidan la parte iterativa, olvidan que cada prototipo debe mejorar en calidad al anterior, y se centran solo en añadir funcionalidad.

El problema de esto es que pasadas unas cuantas iteraciones, el producto se hace inmantenible, por su baja calidad, y por ello es muy difícil añadir nueva funcionalidad, alargándose las iteraciones, los ciclos, y muriendo la esencia de todo esto.

8 Respuestas to “El ciclo de vida iterativo e incremental y el riesgo de olvidarse del iterativo y quedarse solo con el incremental”

  1. Ricardo dice:

    Excelente post, y es lo que constantemente ocurre en las empresas de este país.
    Creo que si hablas algo o lo relacionas con la odiosa “deuda técnica”, mejor que mejor.
    Por otra parte, parece normal en un país de gente con mente “cortoplazista”.

  2. Alex dice:

    Muy cierto, los proyectos Iterativos e Incrementales terminan siendo Incrementales, ya sea porque hay una premura de terminar las funcionalidades definidas para el producto y por tanto se olvidan de la revisión y mejora de lo ya terminado. Creo que esto se da por tratar de terminar el proyecto lo antes posible por el cronograma del proyecto, si el usuario final da el OK de una funcionalidad no se vuelve a revisar ni se mejora aunque se haya detectado una posible mejora, sólo se trata de terminar el proyecto y esto lo hacen terminando toda la funcionalidad que definieron en el alcance del proyecto.

  3. Enrique Robles dice:

    Esto es precisamente lo que agiliza el desarrollo de sofware para el usuario esto es muy valioso.

  4. Paula Alvarez dice:

    El iterativo e incremental se complementan… Si falta alguno de los dos fracasa el proyecto de software aun queriendo ser ágiles…

  5. gracias por el post realmente explica de manera mas explicita lo que es un ciclo de vida de software iterativo e incremental en el que no solo hay que tener en cuenta la parte incremental sino saber manejar las mejoras y retrabajos de cada nueva version ademas de la cantidade de tiempo en la que se lanzan las diferentes versiones.

  6. Jaime López dice:

    Excelente explicación del tema, siempre se me confundían ambos conceptos, y ahora tengo claridad de su importancia en los proyectos ágiles.
    Gracias.

  7. Juan Pablo dice:

    Me parece una gran definición de lo que son estos dos ciclos de vida que no son iguales pero se me complementan, uno necesita del otro, la única duda que me queda es la parte donde se afirma que el ciclo de vida iterativo no implica implementar nuevas funcionalidades al software, esto quiere decir que al ser iterativo no puede correguir e instaurar mejoras en el programa partiendo de colocar o desarrollar nuevas funciones en el software?. Espero alguien pueda sacarme de esa duda. Gracias!

  8. Fernando dice:

    Un post breve, claro y conciso. El ciclo de vida iterativo e incremental, conceptos fundamentales a conocer en la aplicación de Metodologías Ágiles.

Trackbacks/Pingbacks

  1. Bitacoras.com - Información Bitacoras.com... Valora en Bitacoras.com: Si en un ciclo de vida en cascada las fases del ciclo de vida…

Dejar una respuesta

Tu dirección de correo electrónico no será publicada.

top