Creo que las respuestas de Frank y Encaita lo cubren bastante, pero hay algunas cosas adicionales a considerar:
¿Por qué usar puntos de historia?
El objetivo de estimar con puntos de historia es dar la relativa complejidad de desarrollar características para su aplicación. Una manera sencilla de pensarlo es tomar una historia que tenga en el próximo sprint, por ejemplo, un cambio de URL. Sabes que esto es simple en términos de complejidad y tiene criterios de aceptación claramente definidos, por lo que todo el equipo está de acuerdo en que incluso con las pruebas es un 1 (usando la escala Fibo).
La siguiente historia a estimar es agregar un conjunto de datos de usuario y visualizarlos en el front end. Ahora, como desarrollador, sabes de inmediato que esto es mucho más complejo que cambiar una URL. Usted discute la historia y los criterios de aceptación y tiene muchas preguntas y puede ver varias soluciones potenciales para hacerlo. Los otros desarrolladores y QA también están de acuerdo en que es muy complejo. Entonces, todos están de acuerdo en que es una historia de 34 puntos. Vale la pena señalar que la escala Fibo también le permite indicar cuánta confianza tiene en la estimación: cuanto mayor sea la brecha entre los números, menor será la confianza que tenga en su estimación
En este punto, su maestro Scrum debería saltar y decir que esto como una sola historia es demasiado grande y debe dividirse en historias más pequeñas de menor complejidad. Puede abordar esto haciendo lo que se conoce como SPIKES: esto es solo un tiempo reservado para investigar algo. Entonces, para este ejemplo, usted y los otros desarrolladores acuerdan que desea 4 horas para discutir e investigar las posibles soluciones técnicas.
Para acortar una larga historia, divide esa gran historia en otras cuatro historias de 5, 8, 8 y 13 puntos. No recuerde que estas estimaciones tienen que ver con la complejidad relativa: no tienen que sumar la estimación original y además tiene más información ahora para hacer una estimación más precisa.
Luego, como equipo, acepta que para este sprint tratará de completar la historia de 13 puntos, una historia de 8 puntos más el cambio de URL de 1 punto que ya había identificado. Entonces un total de 22 puntos. El próximo sprint obtienes 27 puntos, el siguiente sprint obtienes 18 puntos. Después de 3 sprints puedes comenzar a tener algo de confianza en tu velocidad (la velocidad es la cantidad de trabajo que tu equipo puede hacer en un sprint). Para obtener la velocidad, toma el promedio de los sprints anteriores. Entonces, en este ejemplo, el promedio es (22 + 27 + 18) / 3 = 22.3, así que redondee al más cercano en la escala Fibo que es 21.
Ahora, para el próximo sprint, solo apunta a conseguir 21 puntos.
No se obsesione con el cálculo exacto de su historia: no es una ciencia exacta. Sabes que un cambio de URL es mucho menos complejo que agregar datos, así que solo puntúalo en consecuencia.
Además, discutir estas cosas en equipo es bueno. Revise sus estimaciones durante la revisión del sprint y discuta si estaba contento con ellas o no, y luego transmita esto a la próxima sesión de planificación del sprint.
Todo el equipo estima
Todo el equipo debe estar de acuerdo en una estimación única para cada historia. Una función no se realiza hasta que esté lista para producción. Simplemente obtener el código escrito no se hace de ninguna manera. En mi experiencia, los equipos Scrum han sido mucho más efectivos cuando trabajan en equipo. Tome un ejemplo del equipo con el que estoy trabajando en este momento. Cuando me uní, estaban haciendo todas las reuniones de sprint y planeando póquer, pero durante el sprint el proceso fue 1. Los BA / Propietarios de productos definen los requisitos como historias con criterios de aceptación y pruebas de aceptación 2. Entregan estos requisitos al desarrollador que luego escribe el código 3. El desarrollador tiene el código fusionado en la rama de desarrollo para el control de calidad para la prueba 4. Prueba de control de calidad, luego comienzan a hacer preguntas y las pruebas fallan, por lo que vuelve al desarrollo.
¿Qué falta aquí? No hay suficiente discusión por adelantado y cada miembro del equipo solo vio su propia tarea. Ahora el BA / PO, los desarrolladores y el control de calidad se reúnen antes de escribir cualquier código para discutir los requisitos en detalle y hacer preguntas por adelantado, luego continúan la discusión durante el sprint. Esto es mucho más eficiente y conduce a soluciones de mejor calidad.
La planificación del póker ayuda a este proceso porque obliga al equipo a discutir la característica y a acordar, como equipo, cuán compleja es la entrega de esa característica. En el desarrollo de software tradicional, el Project Manager era responsable de la entrega del proyecto, pero cualquier persona con experiencia en ese enfoque sabe que no funciona porque la mayoría de las veces, las personas no se hacen responsables de su parte en la entrega de la aplicación. En Agile no debería necesitar gerentes de proyecto porque el equipo se responsabiliza en su conjunto por la entrega de la aplicación.
Estimación puntual de tareas
Mi punto de vista de haber trabajado con equipos que estiman el tiempo en tareas y equipos que solo estiman puntos de la historia es ¡NO HAGA ESTIMACIONES DE TIEMPO! En realidad son solo una pérdida de tiempo. No son tan precisos como los puntos de la historia porque son específicos de las personas, no del equipo, y cada individuo tendrá una idea diferente de la estimación del tiempo (encender la llama).
Los puntos de la historia aceptan que las cosas, es decir, los requisitos, cambian todo el tiempo, por lo que realmente necesita un indicador de lo que el equipo puede completar en un sprint.
Una vez que comprenda la velocidad, puede medir sus entregas a tiempo porque sabe lo que puede hacer en cada sprint, por ejemplo, cada dos semanas sabe qué características se pueden entregar. Su scrum master y los propietarios de los productos deberían tener sesiones de estimación para mirar hacia el futuro en los sprints, luego puede obtener un indicador de cuánto trabajo realizará en los próximos meses. Esto permite a los propietarios de productos tomar decisiones de priorización sobre qué características incluir en la aplicación final.
Los desarrolladores me han pedido que calculemos el tiempo de las tareas para planificar, pero en realidad no estoy de acuerdo con este enfoque (de hecho, estoy totalmente en desacuerdo con este enfoque) porque no es exacto, por ejemplo, ¿qué significa esto realmente me llevará 4 horas? un desarrollador puede incluir solo el tiempo de la tarea en sí, ¡otra persona puede agregar tiempo para preparar tazas de té!
Las estimaciones de tiempo siempre se entregan a otra persona con fines informativos y también enfatiza demasiado los elementos individuales de la entrega de una función frente al esfuerzo de todo el equipo.
La estimación no es el mayor problema.
Como comentario aparte, calcular la estimación no es el mayor problema que creo que los equipos tienen que resolver. Lo más importante es trabajar juntos como un equipo para hacer las cosas durante el sprint, de modo que no entregue todo para probar el último día. Desea ver un conjunto constante de características durante el sprint de 2 semanas. La dinámica del equipo que expliqué anteriormente es una gran parte de esto. La estimación del punto de la historia lo ayudará a planificar esto porque verá cuáles son las grandes historias que deben desglosarse en otras más pequeñas que puedan entregarse a las pruebas regularmente.