Monthly Archives: marzo 2011

Estimación por puntos explained

Hace poco di un curso en la oficina de I+D de Video Stream Networks acerca de estimación por puntos. Ya me temía que iba a haber problemas porque el tema de la estimación siempre lo hemos considerado algo de pitonisas. Cuánto se iba a tardar en realizar un desarrollo, teniendo en cuenta que cambiamos con frecuencia de tecnología (c++, C#, javascript, …) además de usar nuevos frameworks, es practicamente imposible de estimar antes de empezar. El entorno de cambio constante en tecnologias de desarrollo que vivimos en nuestra empresa hace que nuestro sistema de trabajo lo consideremos Agil Extremo. La estimación por puntos nos va como anillo al dedo.

Una estimación en puntos se piensa sin tener en cuenta:

  • La persona que lo va a desarrollar
  • El lenguaje de programación que va a usar
  • La familiaridad con la tecnologia a usar por parte del desarrollador

¿Qué se consigue aislando todos estos factores y otros afines? Lo que se obtiene es una representación concreta de una tarea que se puede medir en relación de otras tareas. Por un lado tendríamos este tamaño en puntos que es lo estimado de la tarea y por el otro todos los posibles factores que afectan al tiempo de completar la tarea pero que son muy dificiles de predecir.

.

Al principio del sprint se estiman los tamaños de todas las tareas que se van a realizar en ese sprint. El conjunto de los factores inestimables son los que van a determinar cuantos puntos se van a realizar al finalizar un sprint, es decir, van a marcar la velocidad del equipo.

Una vez hemos terminado un sprint tenemos  la cantidad de puntos que hemos completado. Esta ha sido la velocidad para ese sprint y probablemente no coincidirá exactamente con la velocidad del siguiente. Cómo mínimo se recomienda de tres a cinco sprints para poder tener un rango de velocidades y poder usarlo para estimar el trabajo del equipo más a largo plazo.

La retrospectiva es el momento de hablar de estos factores que han afectado a la velocidad. Lo que ha impedido que se realicen más puntos se intenta eliminar para los siguientes sprints y lo que ha mejorado la productividad se intenta repetir. De este modo se intenta que sprint tras sprint, se aumente la velocidad del equipo.

Como verás estamos hablando una cantidad de puntos variable para un periodo fijo que es el sprint. La estimación por puntos tal cual lo hemos visto aqui no sirve para poder tener un compromiso de cuando se terminarán un número fijo de tareas. Para esto existen otras técnicas que no veremos hoy. 🙂