En el mundo de desarrollo de software una preocupación inherente es cuanto demoramos en poder generar una solución que llegue al mercado lo antes posible, con esto en mente solemos dar una fecha a un entregable sin considerar mucho la incertidumbre, en muchos casos confiando en proyectos pasados. Debido a esto surgió una alternativa a la forma de afrontar estos retos, se trata de la Estimación Ágil a través de puntos de historia, pero ¿Qué son estos puntos? ¿Cómo se utilizan?, bien, a continuación te damos un breve paseo para que puedas entender un poco más de qué va esta estimación.

¿Qué es un punto de historia?
Los puntos de historia son una unidad relativa de medida utilizada en metodologías ágiles como Scrum para estimar el esfuerzo requerido para completar una tarea o funcionalidad específica, en lugar de utilizar medidas de tiempo concretas como horas o días, se da una ponderación abstracta que representa empleando una escala abstracta que refleja la complejidad y el trabajo involucrado.
La razón detrás de usar puntos de historia en lugar de estimaciones en tiempo es que las estimaciones precisas en horas o días pueden ser difíciles en el desarrollo de software, ya que es un proceso creativo y complejo, sujeto a variaciones y desafíos inesperados. Los puntos de historia proporcionan una forma más flexible y adaptable de abordar la planificación y la estimación en el desarrollo de software ágil. También puedes ver otras técnicas de estimación acá.
¿Cómo utilizamos los puntos de historia?
Los puntos de historia son utilizados en las sesiones de refinamiento y planeación del ciclo de desarrollo, en este espacio colaborativo donde participan todos los miembros del equipo de desarrollo y expertos (arquitectos, consultores, etc.) es donde se revisa, discute y valora cada historia, antes de que entre a un ciclo. Pueden leer sobre ciclo de desarrollo acá.
Para emplear los puntos de historias, debemos pasar por esta serie de pasos:
1.- Definir la escala
Lo primero que debemos hacer para poder utilizar los puntos de historia es definir cuál escala utilizaremos. Usualmente se emplea la secuencia Fibonacci, la cual es una secuencia matemática que comienza con 0 y 1, y a partir de ahí, cada número en la secuencia es la suma de los dos números anteriores. Así, la secuencia Fibonacci empieza así: 0, 1, 1, 2, 3, 5, 8, 13, 21, y así sucesivamente. Cada número representa una cantidad de complejidad mayor que el anterior. Esta escala permite a los equipos de desarrollo expresar diferencias de complejidad significativas entre las tareas sin entrar en detalles precisos de tiempo. Además, el uso de la secuencia de Fibonacci refleja la naturaleza incierta y a menudo impredecible del trabajo de desarrollo de software.
Es importante señalar que se debe siempre definir un mínimo y un máximo a la escala, por ejemplo podemos definir que «1» es la tarea más simple y «13» es la complejidad más alta por ende podría ser algo que tomaría todo un ciclo de desarrollo o Sprint (puedes leer un poco más de Sprint acá), con esto el equipo puede orientarse mejor en la estimación.
2.- Identificar una historia pivote
Para facilitar la comprensión de que tan compleja o simple puede ser una historia (tarea/funcionalidad), es ideal identificar una historia que sirva de pivote o referencia para la votación, puede ser la más compleja o la más fácil, eso dependerá de lo que escoja el equipo. En caso de que sea la primera vez utilizando esta técnica, se suele votar, al final, luego a medida que se avanza con las historias, se puede ir identificando esa historia naturalmente.
3.- Revisar cada historia de forma individual
La idea de la estimación y votación es que sea individual por historia y por individuo, significa que se revisa y puntúa una historia a la vez, no es recomendable votar bloques de historia puesto que compromete la valoración de cada una y complejiza la actividad, así mismo lo recomendable es que cada individuo en el equipo entregue su voto de forma individual y transparente, para poder luego argumentar la razón de su voto.
4.- Promover la votación
La valoración de historias es una acto democrático, significa que luego de que todos votan, se analiza el puntaje resultante, por lo que se hace vital que todos emitan su valoración puesto que luego al asignar esta historia a una persona, esta ya esta consiente de la complejidad.
Hay distintas formas de realizar la votación, la mas común es realizarla a través de la técnica de Planning Poker. Está técnica consiste en repartir entre los participantes una cantidad de tarjetas que representan la escala a utilizar (ejemplo 1 al 13), al momento de votar cada persona entrega su puntaje o voto, luego que todos han terminado se procede a analizar el resultado.
Las tarjetas es una forma lúdica de realizar la actividad, pero no es limitante, levantar la mano o comentar tu voto es igualmente válido, si es en forma digital, un mensaje en el chat de la llamada, un post-it en una herramienta digital o una herramienta web como Planning Poker Online funcionan igual de bien, siendo esta última un forma divertida de realizarla.
5.- Incentivar la conversación
Cada votación contiene un abanico de puntos que irá del mínimo al máximo definido en la escala, acá es donde nace la conversación, idealmente puede partir por el menor puntaje, donde la persona puede dar su interpretación de la complejidad para llegar a ese valor, se contrasta luego con el puntaje mas alto, de ahí se discute lo que se debe hacer, la complejidad relativa, en resumen se intenta despejar la incertidumbre para poder llegar a un acuerdo común.
6.- Re-votar y/o consensuar
Luego de analizar la historia y llegar a un entendimiento común entre los participantes, se procede a volver a votar y validar si ahora los valores son similares, aunque lo mismo puede pasar sin la necesidad de votar de nuevo, si en la discusión de la historia se llegó a un punto común, se le asigna en ese momento.
7.- Establecer puntos y avanzar
El punto final de la actividad es que cada historia vaya obteniendo una valoración, el objetivo de esto aparte de entender la complejidad, es que permita también calcular la carga de trabajo que puede ingresar en el sprint basado en la capacidad del equipo, para calcular esta capacidad lo ideal es que el equipo pueda asignar una media por cada persona, luego se sume esta media, siendo ese el total de la capacidad disponible. Ejemplo: si el equipo tiene 4 desarrolladores, se puede establecer que cada desarrollador puede realizar máximo de 8 puntos por Sprint, lo que significa que en un Sprint se podrán completar un máximo de 32 puntos.
Esto no es una regla exacta, lo que resulte del Sprint ayudará a estimar el siguiente.
Beneficios de Planning Poker
¿Qué hace que el Planning Poker sea tan especial? Bueno, no solo mejora la precisión de las estimaciones, sino que también promueve la comunicación y la colaboración en el equipo. Además, reduce el riesgo de que una sola persona sesgue la estimación y alienta a todos a aportar sus perspectivas únicas.
Imaginemos un escenario: tenemos una nueva funcionalidad que debe ser desarrollada. Antes, podríamos haber estimado que tomaría «alrededor de dos semanas». Ahora, con Planning Poker, cada miembro del equipo asigna un valor en puntos de historia. Si alguien estima que tomará más tiempo, se abre una discusión y se exploran las razones detrás de esa estimación. Esto conduce a una comprensión más profunda del trabajo y, en última instancia, a estimaciones más precisas y realistas.
¡Espero que esta explicación detallada te haya ayudado a comprender mejor qué son los puntos de historia y cómo se utilizan en el desarrollo ágil de software! Si tienes más preguntas, no dudes en preguntar.