sábado, 8 de enero de 2011

Desarrollo Ágil: ¡Terminado no es lo mismo que terminado!

¿Cuándo se puede decir que se ha terminado o finalizado de implementar algo en nuestro mundo del desarrollo de software? ¿Basta con haber terminado de escribir código? ¿Hay que haber actualizado el código en el sistema de control de versiones (Subversion, TFS, ClearCase, GIT, ...)? ¿Es necesario haber testeado la aplicación? Y de ser así, ¿de qué manera y hasta qué punto? ¿Y qué hay con la documentación?

Ya antes había escrito de lo importante que es en el desarrollo de software (y más aún en el desarrollo ágil o iterativo) la transparencia.  Sin transparencia, o sea sin información, no es posible tomar las decisiones correctas, para dirigir un proyecto -iteración tras iteración- hacia la meta.

Si queremos ser transparentes debemos dejar claro en la comunicación con todas las partes durante el desarrollo de software acerca de lo que queremos decir cuando hablamos de haber terminado algo. La meta es terminar en cada iteración el desarrollo de una cantidad variable de funcionalidad. Al final de cada iteración podemos decir cuanta funcionalidad (user stories, use cases, ...) hemos completado.

La definición ha de ser en mi experiencia lo más estricta posible. La implementación de una funcionalidad sólo se puede llamar completa cuando se esté seguro que la aplicación cumple con todos los requisitos para que pueda llegar a las manos del cliente. Es muy fácil caer en la trampa de dejar abiertos algunos "detalles" que deberán ser terminados "más adelante". La suma de esos "detalles" terminan siempre reduciendo la transparencia produciendo atrasos y aumentos en los costos del desarrollo de software.

Sin duda que cada equipo, su experiencia y su entorno definen el estándar requerido al momento de liberar un software para su uso.  Dicho estándar debe ser definido explícitamente y el nivel de calidad requerido al fin de cada iteración no ha de diferir mucho de aquel que requiere el producto final. ¡Mientras mayor sea la discrepancia, mayor es la probabilidad que se oculte alguna deuda que ha de ser pagada antes que el producto caiga a las manos de sus usuarios!

No hay comentarios:

Publicar un comentario