miércoles, 16 de noviembre de 2011

Scrum / Agile: Malos hábitos III - Agilidad sin disciplina

Siguiendo con la serie de "malos hábitos" en desarrollo de software ágil que inicié hace algunos días, donde he escrito acerca de la importancia de la autonomía e información para los equipos que desarrollan software, me referiré hoy a lo importante que es la disciplina:

III. Agilidad sin disciplina

Hay quienes creen que basta con tener en el cajón del escritorio una carpeta que define el proceso o tener a alguien en el equipo que lleva el título de scrum master para tener garantizado el éxito en el proyecto de desarrollo de software.  Pero no se trata del nombre del proceso, o si se llama Scrum, Kanban o V-Model XT. Lo importante es que no es posible hacer software de calidad sin disciplina, y menos aún si se utilizan técnicas ágiles para el desarrollo de software.

En el Manifiesto por el Desarrollo Ágil de Software dice entre otras cosas que "Software functionando tiene más valor que documentación extensiva". Esta frase ha sido malinterpretada al punto que he oído muchas veces gente decir que el desarrollo Ágil de Software no es más que hacer software sin hacer planes ni escribir documentación. Lo cual no puede ser más falso!

Desarrollar software de manera ágil significa permitirle al equipo que la desarrolla encontrar los mejores caminos para hacerlo.  Implica también tener en el equipo gente capacitada y con experiencia, que sepa que el camino más corto no es siempre el más rápido ni el mejor.  Un equipo de software ágil sabrá por lo tanto:

  • Que hay que documentar todo lo que sea necesario, pero no más. Hay que hacerlo de manera eficiente. No se trata de cumplir con una aburrida obligación, sino de guardar suficiente información para futuras decisiones.
  • Que hay que testear desde el principio al fin, pues esa es la única garantía de que lo que el producto final cumpla con los requerimientos de calidad y que el usuario pueda hacer con el software lo que tiene que hacer. Idealmente, el equipo debe pensar como automatizar las pruebas de testeo para reducir el esfuerzo a futuro.
  • Hay que respetar los acuerdos, pues esa es la única forma de trabajar eficientemente en equipo.
  • Hay que imponerse metas agresivas pero alcanzables.
  • Que si se tiene información o experiencia, hay que usarla y si no se tiene, pues primero hay que buscarla.  
Agilidad requiere una dosis extra de disciplina, porque cada miembro del equipo es indispensable.  El valor, el peso y la responsabilidad de cada uno es por lo tanto mayor. 

No hay comentarios:

Publicar un comentario