Desarrollo iterativo e incremental
Agile 101
Desarrollo iterativo e incremental: Negarse a elegir
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.
¿Qué es el Desarrollo Incremental?
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.
¿Cuáles son las ventajas del desarrollo incremental (y sus inconvenientes)?
¿Qué es el Desarrollo Iterativo?
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.
¿Cuáles son las Ventajas del Desarrollo Iterativo (y sus Inconvenientes)?
¿Cuál es la diferencia entre el desarrollo iterativo y el incremental?
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.
¿Cómo Encajan el Desarrollo Iterativo y el Incremental en la Metodología Ágil?
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.
Obtenga 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.