jueves, 3 de noviembre de 2011

Gráficas Burndown: ¿cómo rentabilizar el esfuerzo asociado a su elaboración?


Este post es un resumen del artículo "Seguimiento ágil de proyectos de desarrollo de software utilizando Gráficas Burn Down", publicado por María Isabel Marante, Maria Company y Patricio Letelier en las JISBD 2011. Artículo completo disponible en: http://bit.ly/soy0fA

Las Gráficas Burndown han sido impulsadas por la metodología ágil Scrum, en la cual son el artefacto protagonista para el seguimiento de cada iteración. Una Gráfica Burndown muestra la evolución diaria del esfuerzo restante para finalizar el trabajo acordado con el cliente en cada iteración. Aunque esta gráfica parece a priori muy sencilla, para que su uso sea efectivo requiere superar los siguientes desafíos: estimar el trabajo, y  diariamente  recolectar y consolidar dichas estimaciones. Adicionalmente, para poder interpretar correctamente una Gráfica Burndown, es necesario contar con información complementaria respecto de eventos diarios tales como trabajo añadido o quitado del sprint, estimaciones sobrepasadas, ajustes realizados a la estimación, etc. Además, si la información está incompleta, desactualizada o incompleta la gráfica tendrá poco o nulo valor, corriendo el riesgo de tomar decisiones erróneas al hacer interpretación de la gráfica con esas deficiencias. Las carencias en los aspectos mencionados han provocado que las Gráficas Burndown no se estén aplicando o no estén resultando tan efectivas como se esperaba. Este post ilustra cómo hemos integrado las Gráficas Burndown en la metodología TUNE-UP Process y su herramienta de apoyo Worki, y cómo hemos superado los obstáculos antes indicados.

Worki ofrece una Gráfica Burndown para cada sprint de un producto o para un Proyecto (un conjunto de unidades de trabajo que posiblemente se implementarán en diferentes sprints), junto con una tabla y gráfica de Eventos Diarios con información complementaria para la correcta interpretación de la gráfica. 

En TUNE-UP y Worki denominamos Unidades de Trabajo (UT) a los ítems de trabajo o Historias de Usuario. Si el contexto de trabajo requiere un seguimiento cuantitativo se realizarán estimaciones en Puntos u Horas Ideales para cada UT dentro del Sprint y/o Proyecto. En el caso de Horas Ideales se pueden estimar todas las actividades por las cuales pasará la UT (las columnas del tablero kanban que mostrará el estado de la UT). Sin embargo, en nuestra metodología recomendamos comenzar estimando solo una actividad asociada a la UT, por ejemplo, estimar solo el tiempo de Programar, la cual es la actividad usualmente más determinante a la hora de implementar una UT.

La siguiente figura muestra la gráfica Burndown de Worki, podría tratarse de un período de tiempo asociado a un Sprint o a un Proyecto, lo que cambia es el período de tiempo que corresponda.


Nuestra gráfica incluye realmente tres gráficas en una; la gráfica básica Burndown (línea roja ilustrando el tiempo restante), la gráfica Burn Up (línea azul ilustrando el tiempo invertido acumulado), y la gráfica de Tiempo Estimado Total (línea verde ilustrando el tiempo total estimado cada día). Además, para apoyar la interpretación de la gráfica Burndown se traza una línea de referencia desde el primer día con mayor tiempo estimado restante (normalmente el primer día del período) hasta el último día en el cual el esfuerzo restante debería ser cero. Esta línea diagonal estaría suponiendo que la Velocidad es constante. Así pues, al disponer en una misma gráfica los esfuerzos estimados, invertidos y restantes, se facilita la interpretación del estado del Sprint y cómo se ha ido desarrollando. Situaciones tales como una bajada o subida pronunciada del esfuerzo restante podrían visualmente explicarse por una correspondiente bajada o subida en la línea de esfuerzo estimado, o bien en una subida o bajada en la línea de esfuerzo invertido. Sin embargo, la confirmación de estas interpretaciones, como veremos a continuación, exige contar más información respecto de los eventos que pueden haber ocurrido entre dos puntos consecutivos de la gráfica. Si para estimar se está trabajando con Puntos en lugar de Horas Ideales la gráfica Burndown solo require la contabilización de Puntos asociados a trabajo no terminado. La siguiente gráfica muestra la gráfica Burndown en puntos para la misma situación de la gráfica anterior.

Siendo la misma situación de trabajo vemos que la gráfica Burndown en Puntos es diferente a la construida con Horas Ideales. La razón es que las Horas Ideales restantes se reducen con el solo hecho de invertir tiempo, sin embargo, los Puntos descienden solo cuando se termina un trabajo, es decir si un ítem tiene una estimación de 5 Puntos, estos solo se restarán cuando dicho ítem esté finalizado (independiente de cómo se esté invirtiendo tiempo en él). De esta forma, la gráfica Burndown en Puntos promueve, además de un progreso continuo disminuyendo la cantidad de trabajo por realizar, que ese esfuerzo se corresponda con ítems de trabajo terminados. Así se desincentiva la tendencia a trabajar en paralelo sin terminar continuamente, acumulando la terminación de todos los ítems a la vez hacia el final del período de Sprint o Proyecto. Si acumulamos la terminación de ítems al final del período aumenta el riesgo de detectar tardíamente imprevistos y retrabajo, sin tener margen de reacción.

Aunque la gráfica Burndown nos da pistas claras del progreso de trabajo, para su correcta interpretación es conveniente conocer los eventos que diariamente se producen. En Worki, cada día a una cierta hora configurable se hace una snapshot del estado de las UT y con ella se calculan diferencias con respecto al día anterior. A continuación, se describen los eventos que consideramos importantes reunidos en dos grupos, explicando en cada caso el efecto que tiene sobre el cálculo del esfuerzo restante.

Eventos que directamente invalidan la lectura del esfuerzo restante 
  • Actividad con estimación sobrepasada (solo aplicable cuando se usan Horas Ideales). El esfuerzo invertido en la actividad sobrepasa la estimación, lo cual llevaría a un esfuerzo restante negativo, por esto en Worki se considera esfuerzo restante igual a cero hasta que se corrija esta anomalía introduciendo la correspondiente reestimación.
  • Actividad sin estimación. La actividad no ha sido estimada, con lo cual la información global de esfuerzo restante está incompleta, se está visualizando en la gráfica menos tiempo restante (o Puntos) de lo que efectivamente queda por hacer.
Eventos que provocan una variación en el esfuerzo restante observado
  • Cambios del esfuerzo invertido. El esfuerzo invertido se ha modificado. Por ejemplo, se había registrado 10 horas de trabajo pero luego se corrigieron cambiándose por 5 horas. 
  • Ajuste en Estimación. Incremento o Decremento de la estimación. Es imprescindible que cuando se prevea que la estimación no se cumplirá, inmediatamente se realice una reestimación.
  • Introducción de estimación faltante. Indica que se ha estimado una actividad que el día anterior no tenía estimación.
  • UT nueva. La UT no existía el día anterior, se ha creado y añadido al Sprint o Proyecto, añadiendo su correspondiente esfuerzo estimado. 
  • UT añadida. La UT ya existía y se ha añadido al Sprint o Proyecto, añadiendo su correspondiente esfuerzo estimado.
  • UT eliminada. Desaparecerá la estimación de dicha UT y también sus registros de tiempo invertido, provocando los correspondientes decrementos.
  • UT desestimada. Se considera que su esfuerzo restante es cero.
  • UT terminada. Se considera que su esfuerzo restante es cero (aunque no se haya alcanzado su estimación en horas). En el caso de estimar usando Puntos simplemente se descuentan todos los Puntos de la UT. 
Por otra parte, disponer de información más detallada respecto del progreso del trabajo y de los eventos ocurridos durante cada Sprint o Proyecto aporta información útil para reuniones de retrospectiva, ayudando a establecer acciones de mejora y posteriormente apoyar la evaluación de su resultado mediante la comparación de datos de diferentes Sprints y las tendencias asociadas.

Pero, ¿Qué sucede por ejemplo si para construir estas gráficas se debe invertir tiempo extra en la recolección y procesamiento de la información asociada? ¿Y si el equipo no se interesa en utilizar esta información gráfica para tomar decisiones respecto de sus compromisos? La clave está en la automatización de la elaboración de estas gráfica y en ofrecer mecanismos que faciliten el registro de la información, además de promover que el equipo se autogestione y se apoye en esta información cuantitativa para asegurar el cumplimiento de sus compromisos. El desafío es inculcar en el equipo la disciplina de estimar (y reestimar oportunamente) y registrar su inversión de tiempo en la(s) actividad(es) que necesitamos contrastar con las estimaciones. Si se consigue esto el equipo día a día dispondrá de la gráfica Burndown que le permitirá evaluar el progreso y advertir posibles carencias en su Capacidad de equipo para poder llegar a terminar el trabajo en el plazo comprometido. 


Patricio Letelier

linkedin.com/in/letelier
agilismoatwork.blogspot.com
www.tuneupprocess.com


No hay comentarios:

Publicar un comentario