Estimar, ¿cuanto cuesta hacer esto?¿como lo estimamos? No tengo ni idea de como cuanto voy a tardar y predecir el futuro nunca ha sido lo mío.
Las técnicas de estimación «ágiles» son colaborativas, todas las personas involucradas en el proceso deberían colaborar. Del mismo modo, estas técnicas están pensadas para ser rápidas y que puedan repetirse en cada sprint. Y una de las cosas más complicadas es que deberíamos estimas en unidades relativas. Esto significa que no intentamos estimar euros o en horas directamente. Así aprovechamos la capacidad humana para comparar cosas entre sí y evitamos la dificultad para comparar algo con un concepto abstracto (como euros u horas).
Planning poker
Cada miembro del equipo tiene una serie de tarjetas con los números de fibonacci (incluso hay apps https://play.google.com/store/apps/details?id=artarmin.android.scrum.poker&hl=es_419). Cada numero significa un peso/esfuerzo/complejidad. Lo que hacemos es exponer una de las historias de usuario para poder «estimarla».
Sacamos cada uno una carta y esto nos sirve para dialogar y refinar esa historia. Es decir, si un miembro saca un 1 y otro miembro saca un 8 ,hay que analizar porqué esa diferencia y detallar más la historia de usuario, o incluso partirla.
Estimación por afinidad
La idea es construir un tablero con puntos de esfuerzo/peso/valor como columnas, e ir colocando las tareas en cada columna. Esta técnica se basa en que podemos estimar historias en base a sus semejanzas/diferencias con otras.
En realidad ni siquiera es necesario poner la puntuación en las columnas. Sino solo poner las tareas más pequeñas a la izquierda y las más grandes a la derecha. En base a esta ordenación podemos analizar si es necesario «cortar» las tareas más grandes.
Estimación por talla de camisetas
Para evitar la confusión de los puntos, o peor aún estimar en horas una técnica es estimar basándonos en tallas de camisetas. En este caso cada miembro del equipo ha de indicar si cree que la tarea a estimar es: XS (Extra Small), S (Small), M (Medium), L (Large), XL (extra-large) o XXL (Double Extra-Large).
Program Evaluation and Review Technique (PERT)
La idea es que todos los miembros del equipo estimen de manera numérica, por ejemplo usando «planning poker». Usando esos puntos proporcionados por el equipo se aplica esta formula (O+P+4M)/6 donde O es la más optimista, P es la estimación más pesimista y M es la media.
Magic Estimation
Creamos una tabla donde las columnas son los puntos de plannig poker. El equipo seleccionará una tarea que se usará como como referencias, lo que se hace con esta tarea es estimarla por lo que es crucial que todos conozcan dicha tarea así como sus implicaciones.
La mecánica es que por turnos en silencio, cada miembro del equipo tome una tarea y la coloque en una columna, si la tarea se va moviendo por distintas columnas se anotan los cambios. Al cabo de un tiempo las tareas con más movimientos son las que habrá que refinar.
Os dejo una pequeña app https://github.com/janpetzold/magic-estimation para implementar esta técnica.
Big/Uncertain/Small
Para hacer planificaciones rápidas, la idea es hacer 3 «montones de historias»: grandes, pequeñas y las que no tengo ni idea de como son. Esto puede servir en un primer momento tener una idea rápida del product backlog.
Dot Voting
No es una técnica de estimación en sí, pero puede servir. Cada miembro del equipo tiene un limite de puntos 10 y lo reparte entre las distintas tareas a estimar.
No estimar
El desarrollo software es, por su propia naturaleza, impredecible y no repetitivo. La idea es construir pequeñas piezas de software de manera iterativa e incremental que nos lleven lo más pronto posible a entregar valor sin dedicar horas a predecir el futuro.
Algunas consideraciones
Si estimamos en puntos de historia, ¿qué significa un 5? ¿y que un 13? Una manera por ejemplo es tener una historia común, conocida por todos los miembros del equipo y en base a esa tarea estimar. Por ejemplo, ¿cuánto pesa un pato?, No tengo ni idea, pero por ejemplo sé cuanto pesa un conejo, y podría «estimar» que un pato pesa los mismo que un conejo, en cambio si me preguntan cuanto pesa un cerdo… podría estimar que es 85 veces más pesado que un conejo.