Estimación Empírica de Proyectos con Planning Poker

Publicado en

Para planear el desarrollo de un software es necesario estimar de una u otra forma su tamaño y por supuesto su costo. Existen diversas mecanismos para estimar el tamaño de un software y el esfuerzo requerido para construirlo, en las páginas de SG anteriormente se han publicado artículos sobre métodos como la estimación por puntos de función, así como el recurrir a información histórica de proyectos anteriores.

En este artículo se muestra una técnica de estimación empírica conocida como “Planning Poker”, donde un grupo de expertos discuten y evalúan el esfuerzo requerido para cada tarea del proyecto. Se utiliza la opinión de expertos como referencia ya que su experiencia les permite adaptarse a nuevas tareas en base a su similitud. Esta técnica se utiliza en metodologías ágiles como XP (Programación extrema) para estimar cada historia de usuario [1].

La técnica

Consiste en crear una reunión de trabajo con el grupo de expertos. Se requiere de un moderador que dirigirá la actividad. Primero se expone el proyecto que se va a desarrollar. Luego se determinan las actividades requeridas para ejecutar el proyecto, y entonces para cada una de las actividades los distintos miembros del equipo realizan una estimación empírica y se conjuntan y discuten los resultados con el fin de cerrar la brecha y converger en un valor estimado para cada tarea. La información obtenida con la estimación de cada tarea se utiliza para realizar el plan general del proyecto y conocer el esfuerzo total.


Figura 1. Interface web para realizar estimaciones en planningpoker.com

El proceso

A continuación mostramos el proceso en mayor detalle que se realiza para cada historia de usuario a estimar.

  1. El moderador lee y explica una historia o requerimiento ante los miembros del equipo. Se podrán hacer preguntas para dejar claro qué se desea alcanzar.
  2. Los participantes anotan en una tarjeta su estimación para dicha tarea y la entregan al moderador de manera anónima, es decir que no se sepa qué tarjeta corresponde a qué persona.
  3. El moderador captura los resultados en un pizarrón o en alguna herramienta de software tal como la de http://www.planningpoker.com.
  4. Una vez que se conoce los integrantes deberán discutirlas, haciendo énfasis en el razonamiento detrás de los valores extremos (el más bajo y el más alto).
  5. Tomando en cuenta el conocimiento obtenido por esta discusión, cada participante hace una nueva estimación para la historia y la anota en una tarjeta.
  6. El moderador captura las estimaciones ajustadas y en caso de no haber consenso se vuelven a discutir.

III. Verificación y Validación

Es recomendable que al terminar el proyecto y realizar el post-mortem de éste se compare la estimación contra el esfuerzo real, de manera que esto se tome en cuenta para futuras estimaciones.

Para esto podemos recurrir al cálculo del balance relativo de error (BRE) con la siguiente ecuación:


Donde X = real y Y = estimado

Consideraciones

Esta técnica requiere de un moderador con gran pericia para lograr que rápidamente haya convergencia en las estimaciones. También hay que tener cuidado cuando uno de los integrantes tiene demasiada autoridad, ya que puede sesgar la estimación. No es posible estimar un proyecto entero de esta forma, sino que se recomienda estimar por historia o sprint si se trabaja con SCRUM.

 Uno de los beneficios de esta técnica es que permite considerar distintos puntos de vista. Adicionalmente, ayuda a hacer amenizar una tarea que puede ser tediosa. Resulta ser una técnica mejor que Delphi y que grupos no estructurados, tal vez por la discusión cara a cara entre los participantes. A medida que se practica Planner poker se podrán hacer mejores estimaciones.

Referencias
  • [1] N. Haugen. “An empirical Study Planning for user story estimation”. Proceedings of AGILE 2006 Conference. IEEE, 2006.
  • [2] N. Haugen & K. Molokken-Ostovoldl. “Combining Estimates with planning poker: An empirical study”. Proceedings of the 2007 Australian Software Engineering Conference. IEEE, 2007.
  • [3] T. Stober & U. Hansmann. Agile Software Development: Best Practices for Large Software Development Projects. Springer, 2010.
Bio

Héctor Cuesta-Arvizu (@hmcuesta) es Lic. en Informática y actualmente cursa la maestría en ciencias de la computación en la UAEM Texcoco. Cuenta con seis años de experiencia desarrollando y administrando proyectos de software. Adicionalmente se desempeña como instructor para Nyce en el área de base de datos e ingeniería de software.

José Sergio Ruíz Castilla es Profesor Investigador de la Universidad Autónoma del Estado de México, estudia el Doctorado en Ingeniería de Software y trabaja en proyectos de Ingeniería de Software y Sistemas de Gestión del Conocimiento.