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.

Una respuesta 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”.

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 (requisitos, análisis, ...

Dejar una respuesta

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

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

top