Desarrollo iterativo

Post escrito por Jaume Jornet, profesor del MPM La Salle

“Somos agiles, hacemos iteraciones”.

Esta frase podemos oírla a menudo de equipos y empresas que proclaman el uso de metodologías de desarrollo ágil, pero no siempre el valor de hacer iteraciones es bien entendido. A menudo, los procesos de desarrollo de la empresa son adaptados simplemente para seguir realizando exactamente el mismo modelo de proceso predictivo, manteniendo la planificación inicial en todo momento pero realizando la ejecución de forma iterativa.

Sin duda, la división de los procesos de desarrollo en ciclos cortos e iterativos es uno de los pilares del desarrollo ágil, pero para aportar autentico valor debe ir acompañado de mecanismos de feedback que nos permitan aprender de cada una de las iteraciones que realizamos y aplicar lo aprendido en las siguientes. A continuación trataremos de ilustrarlo.

Durante la ejecución de un proyecto basado en una planificación predictiva y su posterior ejecución, a menudo observamos la siguiente gráfica.

¿Por qué se produce esto?

Habitualmente, la depresión de la curva de valor viene dada porque la ejecución se realiza en función de la planificación original. En proyectos en que tenemos un contexto cambiante, cuanto mas alejada en el tiempo se haya la ejecución de una tarea con respecto a cuándo se planificó, mayor es el gap entre el contexto actual en el que se tiene que ejecutar la tarea y el contexto previsto por la planificación. Es decir, las premisas en las que se basa la tarea a ejecutar (los requerimientos) y su encaje dentro de la solución global se hayan mas lejanos del punto inicial de consenso / certeza, aumentando la complejidad de la tarea, lo que repercute directamente en las dimensiones de tiempo y coste de su ejecución.

¿Qué es entonces lo que hace que el desarrollo iterativo mejore la ejecución del proyecto?

El feedback, y más allá de él en si mismo, el aprendizaje derivado de dicho feedback.

En los proyectos realizados de forma empírica (en los que se incluyen las metodologías agiles) requerimos estar constantemente evaluando el contexto en el que nos encontramos, extrayendo conclusiones del mismo y tomando decisiones en función de las mismas.

Es el aprendizaje obtenido de los diferentes ciclos de feedback y de su análisis, el que nos permite que se mantenga la alta entrega de valor a lo largo de toda la ejecución del proyecto. Ya no nos encontramos ante un escenario conformado por ciclos de ejecución sobre una planificación inicial, sino por ciclos de planificación y ejecución. Las tareas a realizar cada ciclo son planificadas al inicio del mismo, basándose en el contexto actual del proyecto y el aprendizaje obtenido de las iteraciones anteriores, reduciendo al máximo el gap comprendido entre planificación y ejecución y los efectos del mismo comentados anteriormente.

Si echamos un vistazo a las diferentes metodologías de desarrollo ágil, todas ellas enfatizan la necesidad de introducir visibilidad y transparencia a todos los niveles del proyecto. Como se desprende de lo comentado a lo largo del post, ello no radica simplemente en un deseo de aportar transparencia por el mero hecho de hacerlo, si no en la necesidad de disponer de toda la información sobre la ejecución del proyecto y su estado actual, retroalimentarnos de la misma, analizarla y extraer conocimiento de ella. Es este un requisito fundamental para, en conjunción con el desarrollo iterativo, conseguir el final último del proyecto: maximizar el ROI entregado, no únicamente al final del mismo sino también durante su  ejecución.

VN:F [1.9.22_1171]
Rating: 0.0/5 (0 votes cast)

About the author  ⁄ Alberto García

One Comment

  • Responder
    20 julio, 2012

    Esta es una metodología flexible e interrelacionada con una serie de conceptos, modelos y prácticas de uso, que controlan la planificación, el desarrollo y la gestión de proyectos tecnológicos. MSF se centra en los modelos de proceso y de equipo dejando en un segundo plano las elecciones tecnológicas.

    VA:F [1.9.22_1171]
    Rating: 0 (from 0 votes)