Desde que se unió a un equipo ágil, su cabeza ha estado dando vueltas con toda la jerga que todo el mundo le lanza.
Ha buscado en Google hasta la saciedad y sabe mucho más de lo que sabía, pero es difícil mantener algunas cosas claras.
Así que vamos a aclarar dos de ellas en este artículo: desarrollo iterativo e incremental.
Siga leyendo y aprenderá qué son, sus ventajas e inconvenientes, sus diferencias y cómo encajan en la metodología ágil.
En el desarrollo incremental, primero se diseña el producto completo. Sólo se omiten los detalles que se pueden decidir con seguridad más adelante. A continuación, se divide en trozos y se construye cada uno por separado. Cuando se termina un trozo, también conocido como módulo, se integra con las partes anteriores para que funcionen como un todo.
El desarrollo incremental puro significa sustituir un único proyecto en cascada por varios, uno para cada módulo. Para tener un software que funcione antes, puede dividir aún más el trabajo de un módulo en iteraciones. Eso también ayudará a mantener controlada la acumulación de defectos.
Tenga en cuenta que el diseño que durante la implementación se limita a los detalles que el diseño general completo dejó fuera.
Los beneficios del desarrollo incremental incluyen:
Los inconvenientes del desarrollo incremental son:
El desarrollo iterativo se parece mucho a la invención: se descubre qué y cómo se necesita sobre la marcha.
Se empieza con una idea justa de lo que se quiere que el producto logre y se utiliza un proceso de aproximación sucesiva para diseñarlo y construirlo.
Se empieza diseñando, construyendo y probando la versión más pequeña de lo que se tiene en mente. Cuando esté satisfecho, lo mostrará y recogerá los comentarios de todos los interesados en el producto.
Eso es una aproximación. Y una iteración.
Si lo que has creado ha sido bien recibido, lo mantienes y lo amplías en la siguiente iteración. Si lo que ha creado ha sido rechazado, lo descarta y vuelve a la mesa de dibujo.
Las ventajas del desarrollo iterativo son, entre otras, las siguientes:
Los inconvenientes del desarrollo iterativo son:
Una diferencia importante es si se especifican los requisitos por adelantado (incrementales) o se descubren a medida que se construye el producto (iterativos).
Otra diferencia importante es el enfoque en la separación de las partes del producto. El diseño modular es una característica fundamental del desarrollo incremental, pero no del desarrollo iterativo.
Está bastante claro cómo el desarrollo iterativo encaja con los valores del Manifiesto Ágil. Y no sería aconsejable no involucrar a los clientes en cada iteración.
El desarrollo incremental no encaja tan bien con los valores. Pero es difícil imaginar que se responda al cambio cuando el software no es modular. La modularidad, la separación de intereses y la limitación de las dependencias son fundamentales para el desarrollo incremental. Permiten hacer las correcciones de rumbo que surgen del proceso iterativo.
En resumen, en un entorno ágil, encontrarás un proceso que combina lo mejor de ambos mundos.
Ahora ya se sabe qué es el desarrollo iterativo y el incremental. Y sabes por qué la metodología ágil los combina. Así que no se preocupe demasiado por la terminología. Lo más probable es que esté haciendo ambas cosas.
El resumen del proceso combinado es sencillo. Empezar de a poco, dividir en módulos funcionales, descubrir los requisitos por módulo, construir, probar y revisar, e iterar.
Funciona bien en casi cualquier proceso creativo.
Así que no dude en obtener lo mejor de ambos mundos para cualquiera de sus proyectos, en el trabajo o en casa.