Estimación por afinidad

Estimación por afinidad, estimar a lo bestia


La estimación por afinidad es una técnica de estimación que permite estimar un gran número de elementos en un tiempo ridículo. He estado en una sesión en la que se han estimado más de 800 historias de usuario en poco más de hora y media. En una sesión de planning poker por ejemplo, es fácil estarse una media de 5 minutos por historia de usuario. Hubiéramos tardado más de 8 días en hacer lo mismo.

Vamos a ver cómo funciona la técnica ágil de estimación por afinidad (también conocida como estimación relativa o por buckets) y en qué escenarios la podremos aplicar.

estimacion agile

Cómo funciona la estimación por afinidad

Antes de la sesión

Lo que necesitaremos para la sesión es tener todos los elementos a estimar, ya sean tareas, historias de usuario, o épicas en tarjetas fácilmente legibles. Podemos imprimir un excel y después recortar los folios a tamaño tarjeta. No vale tener un folio entero escrito con la descripción de cada elemento porque a una cierta distancia será imposible leerlo y será complicado moverlos por la mesa. La mesa es lo segundo que necesitaremos. Debe ser lo suficientemente amplia para poder clasificar todas las tarjetas sin agobios de espacio.

Durante la sesión

El primer paso es acordar las medidas de estimación. Se pueden usar las mismas que la serie de Fibonacci modificada del Planning Poker (0, 1/2, 1, 2, 3, 5, 8, 13, …). También tallas de camiseta (S, M, L). Dividiremos el espacio que tenemos para colocar las tarjetas en la mesa en tantos trozos como medidas distintas tengamos. Si usamos las tallas de camisetas por ejemplo, tendremos 3 divisiones. Si usamos la secuencia de Fibonacci serían unas 10.

estimacion por afinidad 1

A continuación se explica al equipo brevemente en qué consiste el proyecto o conjunto de historias de usuario que se estimará. Si hay dudas se resuelven al momento. Después se reparten las tarjetas con las historias de usuario al equipo para que las vaya repartiendo por la mesa en su estimación correspondiente. Si tenemos muchas historias, se pueden dividir funcionalmente por módulos. Así podemos ir entregando al equipo los módulos de uno en uno a medida que los vamos explicando.

La idea es hacer esta estimación en silencio. Incluso repartiendo las tarjetas entre los distintos miembros del equipo y después que se revise en conjunto. Si hay historias de usuario conflictivas es posible preguntar a los product owners para clarificar dudas. Eso sí, nunca entrar en detalles demasiado técnicos. Entendemos que esta falta de detalle causará imprecisión en algunas estimaciones. Sin embargo, como tendremos muchas historias de usuario entre todas ellas se compensarán.

Durante la estimación es posible dejar historias de usuario entre 2 medidas, sobre todo si usamos tallas en lugar de Fibonacci. Lo importante es que todos los elementos sean más grandes que cualquier elemento a su izquierda y más pequeños que todos los de su derecha.

Al finalizar el ejercicio es cuando debemos decidir cómo clasificamos claramente por tamaño. En el caso de Fibonacci podemos dibujar las líneas entre medidas con un lápiz o con cinta adhesiva de color. Si solo tenemos 3 tallas, es posible hacer una segunda pasada para clasificarlos claramente en contenedores estableciendo nuevas submedidas tal que XXXS, XXS, XS, S, M, L, XL, XXL, XXXL. El hacerlo al final del ejercicio facilita la tarea por 2 motivos:

  • El equipo estará “caliente” a la hora de decidir
  • Tendrán muchísimas más historias de usuario de referencia sobre la mesa para tomar la decisión

Después de la sesión

Como después probablemente querrás llevarte la estimación a una herramienta electrónica, te aconsejo que antes de imprimir los elementos les asignes un ID que te permita después identificarlo rápidamente. También puedes colorearlos según módulos.  Mejor aún, combina ambas técnicas.

estimacion por afinidad 8

Escenarios favorables a aplicar estimación por afinidad

Esta técnica de estimación funciona porque:

  • tienes muchos elementos con los que comparar
  • cuando llevas un rato tomar decisiones muy rápidas basadas en decisiones que has tomado hace segundos o minutos

Está especialmente indicada para estimar un backlog muy grande de elementos, típico en una sesión de Inception. Si tienes menos de 25-30 elementos seguramente utilizaría planning poker para poder entrar en el detalle de las historias.

También es especialmente indicado si los detalles funcionales no están del todo claros. El explicar y pensar la solución funcional a más alto nivel que en planning poker hace que salgan detalles que no se habían pensado bien o que directamente faltan. En este caso es necesario incorporarlos al backlog y estimarlos como el resto.

Concluyendo

Como he explicado, no es una táctica definitiva ni debe reemplazar a planning poker en todas las sesiones de estimación. Es una táctica diferente que aplica en algunos escenarios favorables. Lo mejor, como casi siempre, es aplicar el sentido común. Piensa qué escenario tienes y elige después la que mejor encaje para lo que buscas.

También te puede interesar...

Crea ya tu lista de impedimentos en Scrum El rol del Scrum Master incluye eliminar impedimentos, pero ¿qué son los impedimentos en Scrum concretamente?¿Qué debe hacer el Scrum Master?¿cuáles d...
Resumen Scrum by Jeff Sutherland Tenía muchas ganas de leer este libro. Ya no solo porque era leer sobre el framework Scrum que utilizo a diario en mi trabajo, sino porque me lo había...
Los 7 desperdicios LEAN del software (y II) Este post es la continuación al post anterior Los 7 desperdicios del desarrollo de software donde describía los primeros 3 desperdicios del desarrollo...

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Una idea sobre “Estimación por afinidad, estimar a lo bestia

  • Mario | productividad laboral

    La estimación podría significar cualquier cosa, desde la planificación de estar jugando póquer a simplemente sentarse alrededor de una mesa y llegar a un consenso en equipo sobre el esfuerzo necesario para completar una historia de un usuario en particular. Encontrar el escenario que se adapte a las personas, claro seria lo ideal.