Alejandría

Busca en Alejandría

Técnicas

Pronóstico probabilístico (Monte Carlo)

Responde «¿cuándo estará?» con rangos de probabilidad basados en el throughput histórico.

01

En pocas palabras

Técnica de previsión que simula miles de futuros posibles muestreando el ritmo de entrega pasado del equipo, y expresa fechas o alcance con un nivel de confianza.

Qué problema resuelve

Estimaciones puntuales en horas o puntos que se convierten en compromisos, se incumplen y consumen tiempo en reuniones de estimación.

Cuándo utilizarlo

Planificación de releases, roadmap o negociación de alcance. Ejemplo: indicar a negocio con qué probabilidad estarán 30 historias para el lanzamiento en un nuevo país.

02

De la idea a la práctica

Funcionamiento, ejemplos y decisiones para pasar al siguiente nivel.

Métricas de flujo necesarias

Métrica Definición
Throughput Elementos terminados por unidad de tiempo (semana)
Cycle time Tiempo desde que un elemento empieza hasta que termina
WIP Elementos empezados y no terminados
Work item age Cuánto lleva en curso cada elemento abierto

Basta con tener fechas de inicio y fin por elemento en el gestor de tareas. No se necesitan estimaciones de tamaño si los elementos tienen una granularidad razonablemente parecida.

Cómo funciona

  1. Toma el throughput semanal de las últimas 10–20 semanas.
  2. Para simular un futuro, muestrea al azar semanas de ese histórico hasta completar el trabajo pendiente.
  3. Repite 10 000 veces y ordena los resultados.
  4. Lee percentiles: el 50 % es una moneda al aire; el 85 % es un compromiso razonable.

Ejemplo en Python

import random

throughput = [3, 5, 2, 6, 4, 0, 5, 3, 4, 7, 2, 4]   # historias por semana
pendientes, simulaciones = 30, 10_000

def semanas_hasta(pendientes: int) -> int:
    semanas = hechas = 0
    while hechas < pendientes:
        hechas += random.choice(throughput)
        semanas += 1
    return semanas

resultados = sorted(semanas_hasta(pendientes) for _ in range(simulaciones))
for p in (50, 70, 85, 95):
    print(f"P{p}: {resultados[int(simulaciones * p / 100) - 1]} semanas")

Para la pregunta inversa, «¿cuánto entra antes del lanzamiento?», fija el número de semanas, suma muestras y lee el percentil bajo (P85 de que entren al menos N elementos).

Comunicar el pronóstico

Percentil Lectura para negocio
P50 Igual de probable que llegue antes o después
P85 Fecha comprometible con riesgo bajo
P95 Fecha casi segura; útil para dependencias externas

Presenta un histograma o tabla, no solo una fecha. Repite el pronóstico cada semana: si el P85 se aleja, es una señal temprana para negociar alcance.

Factores que lo invalidan

  • Crecimiento del alcance: el backlog real suele crecer un 20–50 % durante un proyecto; añade un factor de descubrimiento o modela la tasa de llegada.
  • Cambios en el equipo: incorporaciones o salidas alteran el ritmo; usa el histórico posterior al cambio.
  • WIP alto: con mucho trabajo en paralelo, el cycle time se dispara (ley de Little: cycle time ≈ WIP / throughput).

Versión en hoja de cálculo

Sin programar, con Google Sheets o Excel (cada fila es una simulación; copia 10 000 filas):

Columnas Contenido
Hoja Datos, A2:A13 Throughput semanal histórico (12 semanas)
B:AA (26 columnas) Semana simulada: =INDEX(Datos!$A$2:$A$13; RANDBETWEEN(1; 12))
AB:BA (26 columnas) Acumulado: en AB2 =B2, en AC2 =AB2+C2, y así hacia la derecha
BB Semanas hasta completar 30: =COUNTIF(AB2:BA2; "<30") + 1
BC Total entregado en 10 semanas: =AK2

Después, =PERCENTILE(BB2:BB10001; 0,85) da el número de semanas comprometible para el alcance, y =PERCENTILE(BC2:BC10001; 0,15) el alcance que se entrega en 10 semanas con un 85 % de probabilidad. Cada recálculo de la hoja genera una nueva simulación.

Presentarlo a negocio

Lanzamiento de libre inversión en Perú — 30 historias pendientes (actualizado 17/10)

  50 %  ▏ 21 nov
  70 %  ▏ 28 nov
  85 %  ▏ 05 dic   ← compromiso propuesto
  95 %  ▏ 19 dic

Si la fecha debe ser el 28 nov: con un 85 % de probabilidad entran 24 de las 30 historias.
Las 6 restantes por prioridad: …

Ofrecer las dos lecturas (fecha para un alcance, alcance para una fecha) convierte la conversación en una negociación de alcance informada en lugar de una discusión sobre estimaciones.

Señales tempranas con work item age

Un elemento que lleva en curso más tiempo que el percentil 85 histórico del cycle time está en riesgo. Revisar en la daily los elementos por edad (no solo por estado) detecta bloqueos antes de que afecten al pronóstico.

Escalar a varios equipos

Para un programa con varios equipos, simula cada equipo con su propio histórico y combina los resultados respetando las dependencias: la fecha del programa es la del equipo más lento en cada simulación, no la media. Las dependencias entre equipos suelen ser la principal fuente de retraso, y el pronóstico lo hace visible.

Criterios de implementación

Limita el WIP para estabilizar el flujo antes de pronosticar. Divide el trabajo en elementos de tamaño parecido. Herramientas como ActionableAgile, extensiones de Jira o una hoja de cálculo hacen la simulación; el valor está en la conversación con negocio sobre riesgo y alcance.

Continúa en las fuentes

Documentación oficial para verificar detalles y explorar más.