Desarrollo iterativo e incremental

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?

building blocks

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)?

Los beneficios del desarrollo incremental incluyen:

  • Entregar pronto el software que funciona: con el primer módulo terminado (iteración).
  • Desarrollo paralelo. Varios módulos pueden ser trabajados por diferentes equipos.
  • Los módulos pueden completarse en diferentes momentos.
  • Separación de intereses. Cada módulo es un trozo autónomo del producto.
  • Adaptable a los cambios de alcance. Los módulos pueden añadirse o eliminarse del producto.
  • Los riesgos pueden identificarse y abordarse por módulo.

Los inconvenientes del desarrollo incremental son:

  • Es necesario conocer todos los requisitos para descomponer el producto en módulos.
  • No es tan adaptable a los cambios en los requisitos a menos que se combine con el trabajo en iteraciones.
  • El producto no estará completo hasta que todas las partes estén en su sitio.
  • Hacer que las partes funcionen juntas requiere un esfuerzo adicional y puede ser un reto.

¿Qué es el Desarrollo Iterativo?

Iterative Development

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)?

Las ventajas del desarrollo iterativo son, entre otras, las siguientes:

  • Software que funciona desde el principio.
  • Entrega valor de negocio con cada iteración.
  • Se adapta a los cambios en los requisitos a lo largo del desarrollo.
  • El esfuerzo de diseño se gasta sólo para lo que se construirá a continuación.
  • Capacidad para corregir el rumbo en cada iteración.
  • Funciona bien con los clientes que necesitan algo para patear para averiguar lo que necesitan.
  • Gestión de riesgos más fácil y sencilla. Los riesgos pueden ser identificados y abordados por iteración.

Los inconvenientes del desarrollo iterativo son:

  • La arquitectura del sistema necesita una atención proactiva y puede requerir cambios fundamentales en el camino.

¿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.

Iterative and Incremental Development

¡La vida es buena cuando sus equipos ágiles están sincronizados!

Solicite una demostración personalizada de SwiftEnterprise.