Categorías
Software

Desarrollo de software iterativo e incremental

El desarrollo de software es espiral

Hace 12 años estaba en una conferencia de software libre, en ella varios filósofos hablaban en una mesa redonda sobre el desarrollo de software y su semejanza con la vida, varios afirmaban que la vida sigue patrones circulares, las modas, las cosas pasan y vuelven a pasar, volvemos a vestir cosas que se llevaban hace 10 años, etc… En ese debate una anciana levantó la mano y dijo la vida no es circular sigue un patrón de espiral, las cosas se repiten pero no son iguales, evolucionan.

desarrollo de software iterativo

APRENDE: Todo desarrollo de software empieza y acaba con un aprendizaje. En la vida observas, trabajas y aprendes, antes de empezar a desarrollar tienes que aprender de lo que hiciste en la última iteración. En nuestro caso lo primero que hacemos  cuando analizamos el resultado de una iteración de software es resumir los principales aprendizajes de la iteración, proyectos que funcionaron, otros que fallaron, unos que se cumplieron, otro no que no, siempre pasan cosas durante una iteración de las que debes aprender antes de ponerte con la siguiente. Este momento de reflexión antes de ponerse de nuevo a trabajar es básico porque marcará la diferencia de aplicar los aprendizajes al siguiente ciclo. Estamos tan ocupados programando que nos olvidamos de parar y aprender, esto produce que repitamos una y otra vez los mismos errores.

.

DESARROLLA: Esto es lo que sabemos hacer bien, lo que consideran los programadores su trabajo, meter líneas de código, hacer novedades, desarrollar funcionalidad. Hacer, hacer, hacer…. en esta fase siempre nos olvidamos, que quitar cosas, asentar, quitar bugs, hacerlo más estable, de más calidad es parte del desarrollo. Normalmente los clientes no valoran cuando tu código está más limpio, tiene menos bugs, va más rápido o es más estable. Aunque no es un parte valorada desde el exterior es un parte básica de la cuenta de resultados de los próximos 10 años. Un software estable y robusto quita trabajo a todos los departamentos de la empresa (soporte, consultoría, instaladores, comerciales, etc…). 

.

MIDE: El gran olvidado del desarrollo de software, ¿medir? qué tengo que medir?, desarrollamos funcionales que no se usan, otras que no se venden, otras que no gustan a los clientes, etc… y nunca nos paramos a medirlas. Antes de empezar a desarrollar una funcionalidad lo primero que debemos hacer es pensar ¿Cuál es el objetivo cuantitativo? ¿Qué pretendo conseguir? ¿Para qué lo hago?, cuando acabes evalúa y aquí enlazas con la primera fase, de esas mediciones extraes los primeros aprendizajes y todo empieza de nuevo.

Una respuesta a «Desarrollo de software iterativo e incremental»

Hacer retrospectivas en el ciclo de desarrollo lo considero clave, entronca con lo que comentas en el post.

Los comentarios están cerrados.