19 de agosto de 2013

¿Vitesse ou précipitation? Los 3 otros indicadores del Scrum









En cualquier capacitación, certificación o implementación inicial de Scrum se suele hablar de algunos indicadores claves, de los cuales los más clásicos en equipo trabajando con Scrum son:








  • Velocidad: es una medida propia de un equipo que representa la cantidad de items (de acuerdo a su complejidad o al esfuerzo requerido) que puede terminar este equipo en un sprint. Se suele manejar con una unidad abstracta (kg, Story Points, etc.) cuya escala define el mismo equipo. Sirve para determinar el alcance de un sprint  y se suele calibrar a medida que pasan los sprints en función del alcance real obtenido. 
  • Esfuerzo Restante: se suele registrar, visualizar y actualizar diariamente en un Burndown Chart la cantidad de horas restantes para terminar todas las tareas necesarias para entregar los items comprometidos en el sprint. 
  • Defectos: se suele registrar y visualizar la cantidad de incidentes (bugs) que surgen durante un sprint. A veces se registran solamente los incidentes que surgen en ambiente productivo, pero en otras oportunidades se registran también la cantidad de incidentes descubiertos durante las pruebas. 

Si bien estos clásicos son importantes y suelen ser muy útiles para empezar, en varias oportunidades he visto emerger necesidades de registrar, monitorear y analizar otros aspectos claves del Scrum. En este post quiero compartir unos indicadores complementarios que en mi opinión pueden aportar mucho a un equipo ágil en su camino de mejora continua.





¡Disclaimer! Quiero aclarar que sumar indicadores "porque si" no me parece útil. Sin embargo, creo que a veces el Scrum necesita explicitar ciertas percepciones. En mi experiencia en estos casos es fundamental hacer visible algunas cosas que no lo son (por ejemplo registrando ciertos indicadores), para poder discutirlas, mejorarlas, en particular en las retrospectivas. Eventualmente estos indicadores después se dejan a medida que se van resolviendo los problemas que los motivaron, o evolucionan para mostrar datos más enfocados. 


Motivación

Como dice un dicho popular francés:
"Il ne faut pas confondre vitesse et précipitation" (no hay que confundir velocidad y apuro).
En Scrum, cumplir con cierta velocidad y/o llegar a cancelar el esfuerzo restante puede ser muy motivador en un equipo, pero puede tener efectos colaterales sobre la calidad del producto (actual o dificultando su mantenimiento), sobre la moral del equipo y/o sobre el real valor del producto para el negocio.

La velocidad de un equipo es importante, pero creo que hay aspectos mucho más importantes en el desarrollo de un producto, como por ejemplo el valor y la calidad del producto entregado:
  • ¿Cual es el valor real para el negocio de lo que entregamos al cliente/usuario al final del sprint?
  • ¿Estuvimos realmente enfocados en las tareas que más valor le aportan al negocio?
  • ¿Estamos convencidos (técnicamente) de la calidad del producto que entregamos?


¿Cuales son estos indicadores complementarios?

Indice de Orgullo: este indicador representa cuan orgulloso es el equipo del producto entregado en un sprint, y suele ser evaluado desde el punto de vista técnico. Por ejemplo se puede medir con la escala siguiente o cualquier variación consensuada de la misma:

  1. Salvase quien pueda: no queremos estar presente cuando el producto se empieza a usar. Es probable que no se pueda usar, y/o que tenga defectos importantes. Sabemos que hay fallas técnicas importantes que van a explotar en cualquier momento. 
  2. Atado con alambre: cuando nos preguntamos sobre la calidad técnica de lo construido, se escuchan volar las moscas, nadie se mira a los ojos. Si bien el producto funciona, sabemos que habría que re-hacer mejor algunas cosas y que es probable que en el futuro nos genere problemas. 
  3. Podemos dormir tranquilos: dentro de todo estamos entregando algo robusto técnicamente. Hay varias posibilidades de mejorarlo, pero podemos dormir tranquilos porque confiamos que lo que hicimos está bien en el contexto de este sprint. 
  4. Le quiero contar a mi mama: lo que hicimos es ejemplar, y nos da ganas de contarlo a otros por lo bueno que es. Aún con más tiempo y recursos lo haríamos igual. Vamos a recordar este sprint durante varios años y podremos contar a nuestros nietos que estuvimos ahí.
Indice de Orgullo
(las cruces verdes representan cuantas personas tienen la percepción correspondiente)



Valor Entregado: Este indicador registra una medición del valor de negocio entregado por el equipo en el tiempo. Tipicamente, se asocia a cada item comprometido en el sprint un Valor de Negocio (previa o durante la planificación). 

Como lo explicaba en mi post 8 otra maneras de definir el Valor de Negocio":

"El Valor de Negocio representa el beneficio al cual accede una empresa / institución / grupo de usuarios cuando se disponibiliza una nueva funcionalidad de software para su uso productivo."
Un buen indicador es registrar la "cantidad" de valor entregado a lo largo de sprint, en forma paralela al esfuerzo restante que se registra en el diagrama de Burndown. Cada día se suele sumar el valor de negocio de los items pendientes, en curso y terminado del sprint. Se gráfica con un diagrama, estilo Burnup, que representa en el eje X la cantidad de Valor de Negocio (por estado) y en el eje Y los días del sprint.



Diagrama de Valor Entregado



Factor de Foco: El objetivo de este indicador es aproximar con un numero el foco que mantiene el equipo sobre los objetivos de valor para el negocio acordados para el sprint. Por ejemplo en un equipo lo medimos de la siguiente forma:
FF = HE / HD * 100
FF = Factor de Foco

HE = Horas Enfocadas = horas incurridas durante el sprint en tareas para entregar items del product backlog que finalmente fueron entregados

HD = Horas Disponibles de trabajo del equipo en el sprint

Cuando más cerca del 100% más enfocado está el equipo en las tareas planificadas.



Factor de Foco



¿ Cómo registrar estos indicadores?

El Indice de Orgullo se suele evaluar al finalizar la Reunión de Revisión o como parte de la Retrospectiva. El Scrum Master puede pedir a cada miembro del equipo su evaluación y luego computar un promedio. Es interesante mantener un registro sprint a sprint del Indice de Orgullo para ir detectando tendencias.

Para el Factor de Foco y el Valor Entregado, es interesante registrarlos en la Reunión Diaria del equipo, y hacerlos visibles como un gráfico del tablero de tareas, de tal manera de detectar tendencias durante el mismo sprint y tomar acciones en consecuencia.

Para el Factor de Foco es necesario registrar las horas incurridas en las tareas de cada item trabajado, sumarlas para todas las tareas trabajadas en el sprint y compararlas contras las horas disponibles del equipo hasta el día considerado.

Para el Valor Entregado, está bueno contar con un diagrama al lado del Burnown del tablero de tarea, en el cual se vaya registrando cada día del sprint el valor de negocio de los items terminados.

Es interesante ir registrando sprint a sprint el Factor de Foco y el Valor Entregado, para poder detectar tendencias de mediano plazos y relacionarlos.

En todos los casos, estos indicadores pueden ser un muy buen material a analizar en las retrospectivas. 


¿Qué monitorear?
A continuación presento unos casos típicos a monitorear, junto con posibles interpretaciones e ideas de acciones a tomar:

    ¿Qué monitorear?
    Tendencia
    Posibles Interpretaciones
    Posibles Acciones
    Evolución del Indice de OrgulloEstá subiendo o siempre está alto- El equipo está mejorando
    - El equipo está muy confiado
    - Seguir así!
    - Recurrir a una mirada externa experta para ayudar al equipo a detectar eventuales problemas no evidentes que se puedan mejorar
    Evolución del Indice de OrgulloEstá bajando o siempre está bajo- No se están atacando problemas técnicos recurrentes
    - No se valoriza la calidad del producto
    - Frenar el incremento de la deuda técnica, implementando buenas practicas técnicas (p.e TDD, integración continua, etc.)
    - Emprender sesiones de re-factoring o re-ingenieria del producto
    - Cuidar la motivación del equipo
    Valor Entregado vs VelocidadVelocidad Importante pero poco Valor Entregado- No se está priorizando de acuerdo al real valor para el negocio
    - Surgen bloqueos que impiden entregar items de valor para el negocio
    - Reflexionar sobre los mecanismos de priorización utilizados.
    - Comprometer menos items en el próximo sprint para asegurar su entrega.
    Factor de FocoEstá bajando- Hay muchas interrupciones, distracciones en el sprint
    - Surgen muchas tareas no planificadas
    - No se está planificando lo más importante
    - Registrar interrupciones, tareas no planificadas y distracciones para poder luego analizarlas
    - Achicar la duración del sprint y/o comprometer alcance de sprint más ambicioso

    - Involucrar más al negocio para incluir en el sprint lo más relevante para el negocio
    Factor de Foco Está subiendo- Hay menos interrupciones  distracciones, tareas no planificadas
    - El equipo está muy enfocado en lo comprometido
    - Festejar!


    ¿Usan estas métricas? ¿Tienen otras en su Scrum?