miércoles, 3 de febrero de 2016

¿Cómo incluir nuevas historias cuando el burndown indica que el sprint está sobreestimado?

Estamos en el segundo sprint, en plena calibración; en el primer sprint el equipo ha entregado mucho menos de lo planificado, y ahora, en el segundo, va avanzado con un burndown como el que se muestra en la siguiente imagen:
Burndown indicando un sprint sobreestimado
Y el equipo, recordemos que está empezando en Agilidad, se plantea la pregunta ¿incluir nuevas historias?, o ¿trabajar directamente en historias del sprint 3?

Ambas soluciones tienen aparentemente consecuencias no deseadas, si incluimos nuevas historias de usuario, la curva ideal del burndown no variará y se mantendrá con los puntos estimados en la planificación de sprint, y puede interpretarse como que muestra información falseada. Por otro lado hacer tareas de un sprint futuro, fuera del mismo e imputando el esfuerzo a ese sprint, también es falsear...

Scrum siempre trata de reflejar la realidad, por tanto si a medio sprint hay espacio para nuevas historias de usuario, y el equipo está de acuerdo de forma unánime, se pueden y deben incorporar estas. El burndown no es un gráfico de reporting, es una herramienta para el equipo con la finalidad de ayudar a tomar decisiones. En el caso de la imagen de arriba el equipo ve que va avanzado con respecto a la curva ideal, y puede tomar la decisión de incorporar una nueva historia en consonancia con el avance. Una vez incorporada una nueva historia, el burndown queda como la siguiente imagen:
Burndown en la que el equipo ha vuelto a la curva
ideal, que es su guía, incorporando una nueva historia
Si nos fijamos en ambos burndowns veremos que son idénticos, excepto el último segmento que muestra claramente que no se quemado trabajo en el último día, que no ha habido avance. ¿Cómo interpretar esto? ¿Qué ha ocurrido realmente? 

En el siguiente gráfico se muestra lo que ha pasado realmente:
El trabajo quemado y el esfuerzo incorporado se suman
  • A es el segmento de trabajo quemado
  • B representa la inclusión de nuevo esfuerzo, que se suma a A y se anula
Lo que se suele hacer para hacer visible lo que ha pasado es incluir la curva C, en marrón, que indica el tamaño absoluto de la pila de sprint en todo momento. Esta hace visible que a medio sprint hemos incorporado una nueva historia de usuario.

Dado que el gráfico burndown ha de aportar para la toma de decisiones del equipo, es mejor hacer visible la inclusión de esfuerzo extra el día anterior a la inclusión. Así queda visible el trabajo quemado en el último día, que da idea del avance reciente y que es más relevante para una posible nueva toma de decisión. Finalmente el burndown quedaría como en la siguiente imagen:
Burndown final después de la inclusión una nueva historia
Software como Redmine tiene un cron que reprocesa automáticamente los burndowns transformando burndowns como el de la segunda imagen a uno como este último.

Una vez terminado el sprint se registran velocidad estimada en la planificación y velocidad del sprint para ayudar al equipo a afinar la estimación de velocidad para próximos sprints. El burndown simplemente se archiva en la papelera, como herramienta ha perdido toda utilidad y con ello el aparente falseado simplemente no ha lugar.

A quien le interese profundizar en el gráfico burndown le invito a leer el artículo de Dusan Kocurek "Understanding the Scrum Burndown Chart".

No hay comentarios:

Publicar un comentario