Los puntos de historia son unidad de trabajo empleada habitualmente en Extreme Programming y metodologías ágiles, definida por la cantidad de trabajo a realizar en un día de trabajo ideal (tiempo ideal). Expresa una estimación que se requerirá para implementar completamente un elemento de la pila de producto. En lugar de medir el trabajo en horas o días, se utiliza una escala relativa para comparar la complejidad entre diferentes tareas.
Una de las ventajas de utilizar los Puntos de Historia en lugar de medidas más precisas de tiempo es que permite al equipo enfocarse en la complejidad de la tarea en lugar de en el tiempo que tardará en completarse. Esto ayuda a evitar subestimar o sobreestimar el tiempo que llevará completar una tarea y permite una planificación más precisa.
A cada uno de los elementos de la pila de producto le asignamos un valor en puntos. Al final, lo importante son los valores relativos, una historia de 2 puntos debe ser el doble de trabajo que una historia que tiene asignado 1 punto.
¿Qué debemos considerar en un punto de historia?
El punto de historia representa todo el trabajo que se tiene que hacer para implementar por completo un elemento de trabajo. Para determinar la cantidad de puntos debemos de considerar:
- La cantidad de trabajo por hacer
- Qué tan complejo es
- Riesgos involucrados
Es posible que la tarea es sí pueda ser sencilla, pero el contexto en el que tenemos que implementarla la vuelve compleja.
Cantidad de trabajo por hacer
Al definir la cantidad de puntos hay que tomar en cuenta la cantidad de trabajo por hacer. Si por ejemplo hay que actualizar el tamaño de un campo en su cantidad de caracteres que acepta. Antes de asignar los puntos deberemos tener en cuenta todas las partes en las que tenemos que hacer ese ajuste. Actualizar el campo en una forma, no involucra el mismo trabajo que actualizarlo en 20 formas.
La cantidad de trabajo por hacer o el esfuerzo para hacerla, no se deberá relacionar con la cantidad de puntos. Un punto no representa 1 hora o 2 horas, es una medida relativa que el equipo asigna para identificar que un elemento con más puntos requiere más esfuerzo que otro con menos puntos.
¿Qué tan complejo es?
Si consideramos hacer un reporte que involucra listar los campos de una sola fuente debe resultar más fácil, y por lo tanto, menos puntos, que hacer un reporte que involucra una sola fuente pero que incluye columnas calculadas, subtotales y totales.
Para el segundo reporte que lista campos nos requerirá más tiempo generar las columnas calculadas, así como desplegar los subtotales y totales. También puede ser más complejo de acuerdo los tipos de cálculos que involucran las columnas calculadas.
Riesgos involucrados
En la asignación de puntos no podemos dejar de lado considerar si hay algún riesgo involucrado al implementar el elemento de trabajo. En el caso de reporte que tiene columnas calculadas puede ser que la fuente sea una fuente externa lo que puede implicar que dicha fuente este disponible, que nos podamos conectar o que los datos sean correctos. Lo anterior nos puede conducir a que se requiera mas tiempo en la implementación.
Al momento de estimar debemos de resumir el esfuerzo que involucra hacer cada elemento de trabajo considerando los 3 factores de esfuerzo, complejidad y riesgos involucrados. Debemos tener en cuenta también las proporciones de las estimaciones que estamos haciendo, los elementos con menos puntos involucran menos esfuerzo, son menos complejos y tienen menor riesgo, que los elementos que tiene mayor cantidad de puntos.
Recordemos también que los puntos de historia son una medida relativa al equipo de trabajo, por lo que, otro equipo puede asignar diferente cantidad de puntos de historia a algún elemento de trabajo similar al nuestro