domingo, 7 de febrero de 2010

Cómo empezamos a estimar usando Story Points



Quisiera comenzar a escribir sobre las cosas que fuimos aprendiendo junto con mis compañeros de trabajo en uno de los proyectos que estoy trabajando. Me gustaría comentar sobre las cosas que nos costaron , los errores que fuimos cometiendo y los pequeños ajustes que fuimos haciendo para ir mejorando.

Cuando empezamos a trabajar en este proyecto, estimábamos las historias en horas. Nos pasaba frecuentemente en el sprint planning que nos era difícil ponernos de acuerdo en las estimaciones. Esto se debía a varias razones:

  • Como equipo era la primera vez que hacíamos este tipo de tareas.
  • Es difícil estimar con precisión y diferenciar si una tarea lleva 5hs o 6hs.
  • Por otro lado, al tener perfiles y experiencias distintas, es perfectamente natural que para Jose Senior lleve 2hs y para Juan Junior lleve 6hs.

Lo que nos pasaba, era que perdíamos tiempo en consensuar las estimaciones, éramos poco efectivos. Tampoco era muy repetible lo que hacíamos, ej: en un sprint planning decíamos que una tarea nos llevaba 3 hs y luego en otro para una tarea similar decíamos 6 hs.

Aprovechando la época de las fiestas, que nos rompió la duración del sprint, dijimos “porque no usamos este sprint, en el cual no vamos a comprometernos con un backlog de cosas, para estimar con story points y vemos que sale?”

Bueno, la verdad es que nos salió mal. Comenzamos usando la siguiente escala, que tomamos del libro Scrum & XP from trenches:

0, ½, 1, 2, 3, 5, 8, 13, 20, 40, 100

Y definimos que 3 era una página simple que mostraba un listado sin paginar filtro. Nos costó mucho con esta escala decidir que es un 5, un 2, un 13, etc?

Luego, para el siguiente sprint (que fue un sprint de verdad), decidimos ajustar la escala:

1, 2, 4, 8, 16, 32, 64

Gracias a un twitt de Jorge Gamba conocí el libro User Stories Applied y aprendí una técnica muy simple llamada triangulación, que consiste es armar un cuadro con user stories de pesos similares (esto ayuda a estimar por comparación):

1248163264
story 1story 2story 3listado sin paginar c/filtrostory 5story 6story 7

Imprimimos una hoja para cada uno y la llevamos al sprint planning, para ver que salía. Nos llamó la atención cómo empezamos a coincidir en la estimaciones. De a poco empezamos a conversar sobre tamaño, incertidumbre y complejidad para comparar user stories.

Algo positivo de la experiencia fue que nos animamos a introducir un cambio que suponíamos iba a tener un impacto importante si nos salía mal, y que encontramos el momento para hacerlo (las fiestas, donde la expectiva es baja). Otra cosa positiva fue el encare empírico, es decir, hagámoslo, vemos que sale y ajustemos.

saludos!