9 min lectura • Guide 371 of 877
Técnicas de Estimación Ágil
La estimación trata de entendimiento, no de precisión. Una buena estimación crea comprensión compartida y permite la planificación. Una mala estimación promete demasiado o agrega relleno excesivo. Esta guía cubre técnicas prácticas de estimación para equipos ágiles.
Enfoques de Estimación
| Técnica | Mejor Para | Esfuerzo |
|---|---|---|
| Planning Poker | Ítems del sprint | Medio |
| Tallas de Camiseta | Ítems del roadmap | Bajo |
| Mapeo por Afinidad | Muchos ítems | Bajo |
| Time-boxing | Investigación, spikes | N/A |
Puntos de Historia
Estimación Relativa
PUNTOS DE HISTORIA
══════════════════
QUÉ SON LOS PUNTOS DE HISTORIA:
─────────────────────────────────────
Medida relativa de:
├── Complejidad
├── Esfuerzo
├── Incertidumbre
├── Combinados en un solo número
├── No son horas
└── Dimensionamiento relativo
SECUENCIA FIBONACCI:
─────────────────────────────────────
1, 2, 3, 5, 8, 13, 21
Por qué Fibonacci:
├── Mayor = menos precisión
├── Fuerza la elección entre opciones
├── Reconoce la incertidumbre
├── La brecha crece con el tamaño
└── Refleja la realidad
HISTORIAS DE REFERENCIA:
─────────────────────────────────────
Establecer línea base:
├── 1 punto: "Agregar campo a formulario"
├── 3 puntos: "Nuevo endpoint de API"
├── 5 puntos: "Funcionalidad con tests"
├── 8 puntos: "Integración compleja"
├── 13 puntos: "Debería dividirse"
├── Calibración del equipo
└── Comparar nuevo con referencia
QUÉ CAPTURAN LOS PUNTOS:
─────────────────────────────────────
├── Complejidad técnica
├── Cantidad de trabajo
├── Riesgo/incertidumbre
├── Brechas de conocimiento
├── Dependencias
├── No solo tiempo
└── Vista holística
Planning Poker
Estimación en Equipo
PLANNING POKER
══════════════
CÓMO FUNCIONA:
─────────────────────────────────────
1. Leer historia en voz alta
2. Responder preguntas de clarificación
3. Cada uno selecciona carta (oculta)
4. Revelar simultáneamente
5. Discutir diferencias
6. Re-votar si es necesario
7. Consenso o promedio
EJEMPLO DE SESIÓN:
─────────────────────────────────────
Historia: "Restablecimiento de contraseña"
Ronda 1 (revelar):
├── Alicia: 3
├── Roberto: 8
├── Carolina: 5
├── David: 5
└── Dispersión amplia - ¡discutir!
Discusión:
├── Roberto: "Necesitamos integración de servicio de email"
├── Alicia: "Ya tenemos un helper de email"
├── Carolina: "¿Qué hay del rate limiting?"
├── Equipo: "Buen punto, agregar a la historia"
└── Nuevo entendimiento
Ronda 2 (revelar):
├── Alicia: 5
├── Roberto: 5
├── Carolina: 5
├── David: 5
└── Consenso: 5 puntos
POR QUÉ FUNCIONA:
─────────────────────────────────────
├── Previene anclaje (simultáneo)
├── Saca a la luz diferentes perspectivas
├── La discusión construye entendimiento
├── El equipo es dueño de la estimación
├── Compromiso compartido
└── Aprende de las diferencias
Tallas de Camiseta
Para Ítems de Alto Nivel
ESTIMACIÓN CON TALLAS:
┌─────────────────────────────────────────────────────────────┐
│ │
│ TALLAS: │
│ ──────── │
│ XS - Muy pequeño, horas │
│ S - Pequeño, 1-2 días │
│ M - Mediano, 3-5 días │
│ L - Grande, 1-2 semanas │
│ XL - Muy grande, >2 semanas (dividir) │
│ │
│ CUÁNDO USAR: │
│ ───────────── │
│ • Planificación de roadmap │
│ • Estimaciones iniciales de épicas │
│ • Comparación rápida de ítems │
│ • Cuando no se necesita precisión │
│ │
│ PROCESO: │
│ ───────── │
│ 1. Presentar ítem │
│ 2. Cada persona dice talla │
│ 3. Si hay diferencia grande, discutir brevemente │
│ 4. Acordar talla │
│ 5. Convertir a puntos si es necesario: │
│ XS=1, S=2, M=5, L=8, XL=13+ │
└─────────────────────────────────────────────────────────────┘
Mapeo por Afinidad
Para Muchos Ítems Rápidamente
ESTIMACIÓN POR AFINIDAD:
┌─────────────────────────────────────────────────────────────┐
│ │
│ PROCESO: │
│ ───────── │
│ 1. Escribir cada ítem en tarjeta/post-it │
│ 2. Colocar primera tarjeta en el centro │
│ 3. Para cada nueva tarjeta: │
│ - ¿Es más grande o más pequeño? │
│ - Colocar a la izquierda (menor) o derecha (mayor) │
│ 4. Continuar hasta ordenar todas │
│ 5. Dividir en grupos (columnas) de tamaño similar │
│ 6. Asignar puntos a cada grupo │
│ │
│ VISUAL: │
│ ───────── │
│ │
│ Pequeño ◄────────────────────────────────────► Grande │
│ │
│ ┌───┐ ┌───┐ ┌───┐ ┌───┐ ┌───┐ ┌───┐ ┌───┐ ┌───┐ │
│ │ A │ │ B │ │ C │ │ D │ │ E │ │ F │ │ G │ │ H │ │
│ └───┘ └───┘ └───┘ └───┘ └───┘ └───┘ └───┘ └───┘ │
│ ───────── ─────────────────── ───── ─────────── │
│ 1 pt 3 pts 5 pts 8 pts │
│ │
│ VENTAJAS: │
│ ────────── │
│ • Muy rápido para muchos ítems │
│ • Visual e interactivo │
│ • Bueno para refinamiento inicial │
│ • Requiere menos discusión detallada │
└─────────────────────────────────────────────────────────────┘
Mejorando las Estimaciones
Aprendizaje Continuo
MEJORANDO LA PRECISIÓN:
┌─────────────────────────────────────────────────────────────┐
│ │
│ RASTREAR REAL VS ESTIMADO: │
│ ────────────────────────── │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Historia Estimado Real Diferencia ││
│ │ ───────────────────────────────────────────── ││
│ │ Login OAuth 5 5 0 ✓ ││
│ │ Dashboard 8 13 +5 ⚠️ ││
│ │ API REST 3 3 0 ✓ ││
│ │ Reportes 8 5 -3 📝 ││
│ └─────────────────────────────────────────────────────────┘│
│ │
│ ANALIZAR EN RETROSPECTIVA: │
│ ────────────────────────── │
│ • ¿Qué historias se desviaron más? │
│ • ¿Por qué? ¿Requisitos poco claros? ¿Complejidad oculta? │
│ • ¿Qué podemos hacer diferente? │
│ • ¿Necesitamos calibrar referencias? │
│ │
│ DESCOMPONER ÍTEMS GRANDES: │
│ ────────────────────────── │
│ • Historias >13 puntos: dividir siempre │
│ • Historias de 8 puntos: considerar dividir │
│ • Historias más pequeñas = estimaciones más precisas │
│ │
│ USAR REFERENCIAS ACTUALIZADAS: │
│ ────────────────────────────── │
│ • Revisar historias de referencia periódicamente │
│ • Agregar nuevas referencias de sprints recientes │
│ • Eliminar referencias obsoletas │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ RECORDAR: │
│ La meta no es precisión perfecta. │
│ Es mejorar continuamente y planificar mejor. │
└─────────────────────────────────────────────────────────────┘
Errores Comunes
Antipatrones de Estimación
ANTIPATRONES A EVITAR:
┌─────────────────────────────────────────────────────────────┐
│ │
│ ❌ CONVERTIR PUNTOS A HORAS: │
│ ──────────────────────────── │
│ "1 punto = 4 horas" │
│ Elimina beneficios de abstracción │
│ │
│ ✅ MEJOR: Mantener puntos como medida relativa │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ ❌ COMPARAR VELOCIDADES ENTRE EQUIPOS: │
│ ────────────────────────────────────── │
│ "Equipo A hace 40 pts, Equipo B solo 25" │
│ Cada equipo calibra diferente │
│ │
│ ✅ MEJOR: Usar velocidad solo dentro del mismo equipo │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ ❌ ESTIMAR SOLOS: │
│ ───────────────── │
│ Un "experto" estima todo │
│ Pierde perspectivas, no hay compromiso del equipo │
│ │
│ ✅ MEJOR: Todo el equipo estima junto │
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ ❌ RE-ESTIMAR TRABAJO EN PROGRESO: │
│ ────────────────────────────────── │
│ Cambiar estimación cuando está "casi listo" │
│ Arruina la velocidad como métrica │
│ │
│ ✅ MEJOR: Mantener estimación original, aprender para futuro│
│ │
│ ─────────────────────────────────────────────────────────── │
│ │
│ ❌ PRESIONAR POR ESTIMACIONES BAJAS: │
│ ──────────────────────────────────── │
│ "¿Seguro que no pueden hacerlo en menos?" │
│ Crea estimaciones optimistas, falla la planificación │
│ │
│ ✅ MEJOR: Confiar en el equipo, usar datos históricos │
└─────────────────────────────────────────────────────────────┘
Estimación con GitScrum
Configuración
USO DE GITSCRUM PARA ESTIMACIÓN:
┌─────────────────────────────────────────────────────────────┐
│ │
│ CAMPOS DE ESTIMACIÓN: │
│ ───────────────────── │
│ • Puntos de historia en cada tarea │
│ • Campo personalizable (puntos, horas, tallas) │
│ • Visible en el tablero │
│ │
│ VISTAS ÚTILES: │
│ ────────────── │
│ • Backlog ordenado por prioridad con puntos │
│ • Sprint con total de puntos comprometidos │
│ • Burndown/burnup para seguimiento │
│ │
│ REPORTES: │
│ ───────── │
│ • Velocidad por sprint │
│ • Tendencia de velocidad │
│ • Comparación estimado vs completado │
│ │
│ INTEGRACIÓN CON PLANNING: │
│ ────────────────────────── │
│ • Ver capacidad del sprint │
│ • Alertas si excede velocidad promedio │
│ • Historial de sprints anteriores │
└─────────────────────────────────────────────────────────────┘
Cuándo No Estimar
#NoEstimates
CUÁNDO CONSIDERAR NO ESTIMAR:
┌─────────────────────────────────────────────────────────────┐
│ │
│ CONTEXTOS DONDE FUNCIONA: │
│ ───────────────────────── │
│ • Historias de tamaño similar (bien descompuestas) │
│ • Equipo estable con cadencia predecible │
│ • Producto interno (sin compromisos externos) │
│ • Alta confianza entre equipo y stakeholders │
│ │
│ ENFOQUE: │
│ ───────── │
│ • Contar historias en lugar de puntos │
│ • Usar throughput (historias/semana) │
│ • Mantener historias pequeñas (1-3 días máx) │
│ • Forecast basado en datos históricos │
│ │
│ CUÁNDO MANTENER ESTIMACIÓN: │
│ ─────────────────────────── │
│ • Compromisos externos (clientes, contratos) │
│ • Equipos nuevos sin datos históricos │
│ • Historias de tamaño muy variable │
│ • Stakeholders requieren proyecciones │
│ │
│ LA CLAVE: │
│ ───────── │
│ Estimar no es obligatorio en Agile. │
│ Usa estimación cuando agregue valor. │
│ Omítela cuando sea ceremonia sin beneficio. │
└─────────────────────────────────────────────────────────────┘