La velocidad de un sprint es la cantidad de puntos de historia que un equipo de desarrollo puede completar durante la misma iteración, ¿Pero qué beneficio nos trae esta información al equipo?¿Cómo podemos saber cuál es la velocidad de nuestro equipo?
Antes de comenzar me gustaría preguntarte ¿para qué medimos? lo que sea, puede ser por ejemplo para qué medir el peso corporal, o la altura de una pared.
Comúnmente cuando una persona mide una entidad podemos notar que está comparando o analizando los atributos que ésta tiene, luego a partir de ese análisis puede hacer por ejemplo una predicción de una determinada situación, controlar ese atributo o mejorarlo.
Una métrica en el ámbito de scrum sería un conjunto de datos a partir de los cuales el equipo de desarrollo supervisa y los utiliza para mejorar su eficiencia, tomar decisiones más fundamentadas, para la ejecución de objetivos o también para plantearse planes de mejora. Podemos decir entonces que la velocidad de un sprint es una métrica.
La ventaja de conocer nuestra velocidad
Nos ayuda a planificar los sprints, podemos usar la velocidad para estimar cuánto valor podemos entregarle de manera razonable a nuestro product owner o cliente durante un Sprint.
Cuándo usar métricas en scrum…
Una idea que me pareció interesante es la de utilizarlas cuando queremos resolver un problema, por ejemplo una vez como equipo nos pasó que no sabíamos cuántas historias subir al sprint backlog, esto nos afectaba ya que no le podíamos decir con seguridad a nuestro product owner qué cantidad de trabajo podíamos entregarle en el próximo Sprint, seguido de esto decidimos formalizar un cálculo para poder obtener una velocidad promedio lo cual nos resolvió la problemática mencionada anteriormente.
Por otro lado un caso en el que no usaría métricas sería para reportes o para comparar estos datos con otro equipo de desarrollo, esto sería una pérdida de tiempo e incluso un antipatrón agile.
¿Cómo medir la velocidad promedio de un sprint?
Veamos un ejemplo de una posible forma de calcular este dato. Primero vamos a contar cuántos puntos de esfuerzo se completaron en cada sprint. Por ejemplo, supongamos que en el sprint 1 el equipo se comprometió a completar 4 historias de usuario. Cada historia de usuario tenía 8 puntos de esfuerzo (en total 32 puntos de esfuerzo). El equipo solo completó 3 de las 4 historias de usuario (se completó un total de 24 puntos de esfuerzo).
En el sprint 2 el equipo se comprometió con 5 historias de usuario (incluida una que no se completó en el sprint 1). Cada historia de usuario tiene 8 puntos de esfuerzo (en total 40 puntos de esfuerzo). El equipo completó 2 de las 5 historias de usuario (se completó un total de 16 puntos de esfuerzo).
Teniendo ésta información vamos a calcular el promedio de velocidad que tenemos como equipo de la siguiente manera. Vamos a sumar solamente los puntos de esfuerzo de las historias completadas de cada sprint, y luego a este resultado lo vamos a dividir por la cantidad de sprints, de las imágenes que vimos en el ejemplo de arriba el cálculo nos quedaría así:
- Sprint 1: 24 puntos completos
- Sprint 2: 16 puntos completos
- Cantidad de Sprints: 2
totalDePuntosCompletos = 24 + 16
totalDePuntosCompletos = 40
velocidadPromedio = totalDePuntosCompletos / cantidadDeSprints
velocidadPromedio = 20
Y esta pequeña fórmula nos revela nuestra velocidad promedio durante un sprint, en este ejemplo la velocidad resultó en 20 puntos.
¿Qué cantidad de sprints debemos usar para realizar éste calculo?
Se recomienda utilizar como máximo los últimos tres sprints y esto es porque si durante el ciclo de vida del proyecto hubieron veinte sprints, probablemente en el primer ciclo el equipo estaba compuesto de una determinada manera, y en el último ciclo esto ya no sea así.
Conclusión
En este artículo hablamos acerca de la velocidad, una de las métricas más utilizadas en scrum, y cómo aprovechar el beneficio que ésta nos da como equipo para favorecer la colaboración con el cliente.