El gráfico de «Burndown Chart» muestra el esfuerzo restante en un proyecto ágil a lo largo del tiempo, permitiendo al equipo y a los interesados visualizar el progreso de la iteración. En el eje vertical (Y) se representa el «Remaining Effort» (trabajo pendiente), mientras que en el eje horizontal (X) se muestra el «Iteration Timeline» (línea de tiempo de la iteración en días).
Este gráfico se divide en dos curvas clave:
Ideal Remaining Effort (Esfuerzo Ideal Restante): Representado en azul, esta línea muestra la trayectoria ideal de finalización del trabajo si el equipo progresa de manera constante, de acuerdo con la planificación inicial. Es una línea descendente lineal que indica cuánto trabajo debería quedar en cada día de la iteración si todo marcha según lo planeado.
Actual Remaining Effort (Esfuerzo Real Restante): Representado en rojo, esta línea refleja el progreso real del equipo en la iteración. Muestra el esfuerzo o trabajo que queda por realizar en cada punto de la línea de tiempo, basado en el avance diario. Cuando el equipo completa tareas, el «Actual Remaining Effort» disminuye, acercándose o alejándose de la línea ideal dependiendo de si el equipo está logrando los objetivos planeados.
Interpretación del «Actual Remaining Effort»
El «Actual Remaining Effort» es el esfuerzo o trabajo restante que queda por completar en el proyecto en un momento específico. Este esfuerzo se mide en función de las tareas pendientes y se actualiza diariamente o después de cada avance, proporcionando una visión clara del progreso real en comparación con el plan ideal.
En el gráfico, se observa que el «Actual Remaining Effort» comienza por encima de la línea ideal y se mantiene por momentos por encima de esta, lo que indica que al inicio el equipo no estaba avanzando a la velocidad planificada. Sin embargo, hacia la mitad de la iteración, se observa una mejora en el ritmo del trabajo, donde el esfuerzo real restante se acerca al esfuerzo ideal. Esto podría interpretarse como un ajuste en la velocidad del equipo, lo que demuestra la flexibilidad del enfoque ágil al adaptarse a los desafíos iniciales y mantener el enfoque en la entrega de valor.
Conclusión
Este gráfico es un «radiador de información» que proporciona transparencia sobre el progreso del equipo, ayudando a identificar posibles desviaciones y la necesidad de ajustes en la estrategia de trabajo. La comparación entre el «Actual Remaining Effort» y el «Ideal Remaining Effort» permite detectar si el equipo está cumpliendo con las expectativas o si necesita adaptar su enfoque para completar el trabajo en el tiempo previsto.
Ejemplo
Imaginemos que un equipo de desarrollo está trabajando en una iteración de dos semanas (10 días hábiles) para completar 100 puntos de historia (esfuerzo estimado). Al inicio de la iteración, el equipo planifica completar de manera uniforme el trabajo, de modo que cada día se reduzca el esfuerzo restante en 10 puntos. Este sería el plan ideal reflejado en el gráfico con la línea del Ideal Remaining Effort.
Progreso Diario
Día 1: El equipo planifica avanzar 10 puntos, pero solo completa 8 puntos debido a dificultades iniciales con la configuración del entorno. El Actual Remaining Effort queda en 92 puntos en lugar de los 90 planificados.
Día 2: El equipo ajusta su trabajo y completa 12 puntos, alineándose de nuevo con la línea ideal de 80 puntos al finalizar el día.
Día 3: Un imprevisto causa una interrupción, y el equipo solo avanza 5 puntos. Ahora, el esfuerzo restante queda en 75 puntos, un poco más alto que el ideal de 70 puntos.
Día 4 y Día 5: El equipo avanza de acuerdo con el plan, completando 10 puntos cada día, ajustándose nuevamente a la línea ideal de progreso.
Día 6: La velocidad del equipo aumenta y completan 15 puntos, lo que les deja con 30 puntos de esfuerzo restante, ahora por debajo de la línea ideal de 40 puntos. Esto indica que el equipo ha recuperado tiempo y se encuentra adelantado.
Día 7 – Día 10: El equipo mantiene un buen ritmo y completa los puntos restantes antes del tiempo previsto.
Visualización en el Burndown Chart
En el gráfico:
- La línea ideal (Ideal Remaining Effort) es una línea recta descendente que se inicia en 100 puntos y llega a 0 al finalizar el día 10.
- La línea real (Actual Remaining Effort) tiene fluctuaciones diarias basadas en el progreso del equipo. En los primeros días, la línea está por encima de la ideal, indicando un avance más lento. A mitad de la iteración, la línea se cruza con la ideal y, hacia el final, cae por debajo, reflejando un progreso acelerado.
Interpretación del Ejemplo
- En este ejemplo, el Actual Remaining Effort varía diariamente, lo que permite al equipo observar si su progreso está alineado con lo planeado.
- Las variaciones en el esfuerzo restante diario ayudan a identificar problemas y realizar ajustes en tiempo real. Por ejemplo, tras el bajo rendimiento del Día 3, el equipo toma medidas y recupera el ritmo.
Conclusión del Ejemplo
Este ejemplo muestra cómo el Burndown Chart ayuda a visualizar el progreso y facilita la toma de decisiones para ajustar el trabajo cuando el avance no coincide con el plan. Así, el equipo tiene visibilidad diaria y puede adaptarse, asegurando que el trabajo pendiente (Actual Remaining Effort) se reduzca para cumplir con el objetivo final.
La representación visual de cómo sería el Burndown Chart correspondiente al ejemplo que hemos desarrollado sería así:
En el gráfico podremos observar lo siguiente:
- El Eje Y representa el «Remaining Effort» (Esfuerzo Restante), que comienza en 100 puntos y desciende hasta 0.
- El Eje X muestra los días de la iteración, de 0 a 10.
La línea azul (Ideal Remaining Effort) es una línea recta que desciende de forma lineal desde el esfuerzo total al inicio (100) hasta 0 al final (Día 10).
La línea roja (Actual Remaining Effort) es la que representa el esfuerzo real restante día a día. Esta línea tiene una ligera curva, y al principio sube sobre la línea ideal (indicando que el equipo va más lento de lo esperado), para después alinearse e incluso descender por debajo, reflejando el progreso adicional y la recuperación del ritmo de trabajo.
Recomendaciones
1. Participación Temprana en el Proceso de Desarrollo
- Involucrarse desde el inicio de la iteración en la planificación y revisión de las historias de usuario.
- Validar criterios de aceptación junto al Product Owner y el equipo para asegurar que son claros, completos y factibles de probar.
- Esta práctica reduce malentendidos y asegura que las pruebas se alineen con los objetivos de calidad esperados.
2. Automatización de Pruebas
- Priorizar la automatización de pruebas de regresión, integración continua y pruebas unitarias, especialmente en funcionalidades críticas o de alta frecuencia de uso.
- Integrar las pruebas automatizadas en el flujo de CI/CD (Integración y Entrega Continua) para identificar rápidamente defectos en el código nuevo, reduciendo el trabajo remanente.
3. Pruebas Incrementales
- Realizar pruebas incrementales en lugar de esperar a que una gran cantidad de trabajo esté lista para pruebas. Esto incluye probar pequeños incrementos de código al completarse, lo que facilita la detección temprana de defectos.
- Revisar y actualizar los casos de prueba a medida que cambian los requisitos, minimizando la acumulación de trabajo remanente que necesita ser probado.
4. Pruebas Exploratorias
- Complementar las pruebas automatizadas y estructuradas con pruebas exploratorias. Esto ayuda a descubrir defectos no previstos y problemas de usabilidad que puedan haberse pasado por alto en las pruebas automatizadas.
- Incorporar sesiones de testing exploratorio en cada iteración, revisando áreas críticas y buscando comportamientos inesperados.
5. Revisión y Monitoreo de los Defectos
- Usar gráficos para monitorear el progreso de los defectos identificados y corregidos durante la iteración. Esto ayuda a visualizar el trabajo remanente y permite al equipo realizar ajustes en su enfoque de pruebas para evitar que los defectos se acumulen.
- Revisar el estado de los defectos remanentes en cada reunión diaria o retrospectiva para ajustar las pruebas y planificar la resolución de problemas pendientes.
6. Pruebas Basadas en el Riesgo
- Priorizar las pruebas en áreas del sistema con mayores riesgos (como componentes de alta complejidad o funciones críticas para el usuario).
- Realizar una evaluación de riesgo junto al equipo para identificar los módulos o historias de usuario con mayor probabilidad de contener defectos o impacto en el sistema.
7. Comunicación Continua y Transparente
- Mantener comunicación constante con desarrolladores, Product Owners y otros interesados para asegurar que los defectos sean bien entendidos y priorizados.
- Utilizar herramientas de gestión de proyectos para documentar y compartir los resultados de pruebas en tiempo real, lo que facilita la toma de decisiones y el ajuste de prioridades en función del estado del trabajo remanente.
8. Retrospectivas de Calidad
- Participar activamente en retrospectivas para revisar qué funcionó y qué no en el proceso de pruebas de la iteración. Discutir cómo mejorar la planificación, ejecución y automatización de las pruebas.
- Proponer ajustes en base a las lecciones aprendidas, como mejorar la definición de criterios de aceptación, optimizar las pruebas automatizadas o ajustar la estrategia de testing exploratorio.
Conclusión
Siguiendo estos pasos, los testers ágiles pueden mejorar el control de calidad sobre el trabajo remanente, detectando defectos de forma temprana y asegurando que el producto final cumpla con los estándares de calidad esperados. Estas prácticas permiten al equipo adaptarse rápidamente a cambios y mantener una visión clara y en tiempo real de la calidad en cada etapa del desarrollo.
Fuente de inspiración
Este contenido refiere al Dominio 5 – Planificación Adaptativa (PMI ACP)