27-07-2009 Luis Artola
Ya estemos utilizando Kanban, SCRUM o Feature Driven Development, si estamos intentando aplicar cualquier metodología ágil necesitaremos elaborar un Product Backlog del proyecto donde cada ítem represente una user story (o una feature, o …). Además, deberemos priorizar esos items para ver cuales son más importantes y añaden más valor, e implementarlos primero.
Una de las claves a la hora de poner manejar cómodamente las user stories, elegir en qué iteración desarrollarlas y poder estimar cuanto tiempo tardaremos o si estamos cumpliendo el plan previsto, es hacer que sean del mismo tamaño (o, al menos, de un tamaño similar). Esto no siempre será posible, pero hay que intentar dividir una user story en varias, o juntarlas, para conseguir la mayor homogeneidad posible.
Para poder estimar el tiempo que nos llevará una user story, tenemos varias técnicas:
Una vez que tengamos nuestra estimación para los items más prioritarios, podremos ver cuantas horas y cuantos programadores serán necesarios para llevar a uen puerto la iteración en el tiempo estimado. Ésta es nuestra primera métrica: Iteration velocity, esto es, el número de horas (o de story points) resultos multiplicado por el número de programadores que participarán.
Si la Iteration Velocity de cierta iteración que va a durar tres semanas se ha planificado en 45 user stories, y pasada una semana sólo se han resuleto 3 user stories, se puede ver claramente que el equipo se está retrasando. Esto se suele representar mediante un gráfico BurnDown.

Diariamente el programador introducirá las horas reales que le están suponiendo los story points. Las horas reales, son una métrica muy evidente. Si estamos por debajo de lo estimado, habrá que añadir story points a la iteración, y si estamos por encima, habrá que ver por qué, y en caso de no haber remedio, disminuir el número de story points de la iteración para poder llevarla a buen puerto.
Si la iteración va mal, y no nos va a dar tiempo a completarla como lo planificamos habrá que ver por qué. A eso nos ayudarán un par de métricas:

Razones para elegir una funcionalidad y priorizar:
Y, por último, dejo aquí un interesante artículo sobre preguntas que podemos hacernos a la hora de controlar el desarrollo de un proyecto, y cómo obtener las respuestas en un entorno SCRUM.
1. Federico | junio 5th, 2010 at 9:55 pm
Hola Luis, es un gusto contactarme contigo.
Administro el sitio Run IT, una red social para programadores y profesionales IT.
Quiero invitarte a que participes de esta red y comentarte que estamos sorteando cursos sobre metodologías ágiles.
Tu sitio es visitado desde todo el mundo y quizá quieras publicar una nota respecto a este beneficio. El curso se dicta en Argentina, te dejo más información en este link:
http://www.runit.com.ar/pg/pages/view/16600/
Felicitaciones por tu site y espero que sea de interes mantenernos en contacto.
Un abrazo,
Federico