“Ningún plan sobrevive al contacto con el enemigo”. La frase se le reconoce al Mariscal de Campo von Moltke, apodado el viejo. Mike Tyson dijo lo mismo con su característica ferocidad: “Todo el mundo tiene un plan hasta que le llega el primer puñetazo».

Los planes son necesarios, pero deben ser organismos adaptables, vivos. Una vez comprendidos los objetivos de un proyecto o definido el alcance de la próxima release no podemos caer en la trampa de asumir que todo irá según lo planeado, porque no lo va a hacer. El plan debe ser adaptado según se acumule nueva información.

La base de toda planificación probabilística es disponer de un conjunto de datos suficiente y un flujo predecible sustentado en métricas consistentes. Lograrlo es un círculo virtuoso, queremos mejores métricas y más fiables, por lo que refinamos las tareas, las dotamos de más detalle, procuramos ajustarnos a nuestra capacidad histórica, lo que logrará que tengamos mejores métricas y así sucesivamente.

La simulación de Monte Carlo es una técnica estadística utilizada para resolver problemas complejos con la generación de múltiples muestras aleatorias. Su nombre se inspira en los juegos de azar en el casino de Monte Carlo, se basa en la generación de números aleatorios. Cuando queremos hacer predicciones basadas en probabilidad necesitamos asumir que hay muchos posibles escenarios que pueden suceder. En esta simulación, se construye un modelo matemático del sistema que se desea analizar. Luego, se realizan iteraciones repetidas utilizando números aleatorios para simular la variabilidad y la incertidumbre presentes en el problema.

Ejemplo de una simulación de Monte Carlo

Fuente: Wikipedia

Se basa en medias de throughput, su desviación estándar o típica y un conjunto de iteraciones que dan como resultado una estimación por percentil.

En un proyecto basta con un nivel de precisión de un día, por ello, podemos obtener resultados fiables con una colección de datos limitada es decir, no importa disponer de un entregable a las 10 de la mañana o a las 12.

Simulación de Monte Carlo items

Digamos que tenemos 30 tareas en una nueva funcionalidad. Tenemos una fecha para dentro de un mes, siendo hoy 12 de junio, sabemos que tenemos un 75% de lograrlo para el 12 de julio; si nos queremos arriesgar, podemos asumir un 50% o ser conservadores y considerar un 95% para una semana después. Al realizar varias simulaciones, podríamos obtener una media de 12.5 días para completar una tarea, con una desviación estándar de 1.5 días. Esto proporciona una estimación del tiempo probable llevará completar la tarea y también informa de la variabilidad en el proceso.

En resumen, la simulación de Monte Carlo te permite estimar la fecha probable de finalización de una tarea basada en la generación de muestras aleatorias que modelan la incertidumbre en el tiempo de realización de dicha tarea.

Tomando estos datos, debemos hacer seguimiento del progreso de nuestro compromiso para reevaluar la afirmación inicial, por lo que volveremos a ejecutar la simulación con frecuencias periódicas y hacer ajustes antes de que se produzca una desviación o podremos informar de ella a los stakeholders. Una predicción solo tiene en consideración resultados pasados y, como todo inversor sabe, resultados pasados no garantizan resultados futuros. Es posible que haya bajas en el equipo, bloqueos no identificados, riesgos mal mitigados o cualquier otro devenir que nos invite a replanificar, pero todas las decisiones estarán justificadas y argumentadas. Esto es lo que llamamos proceso de toma de decisiones data-driven.

Este modelo iterativo de planificación probabilístico es beneficioso, incluso, si nuestras medidas de contención/corrección ante un escenario no deseado no terminarán por cambiar la tendencia ya que podríamos comunicarlo con antelación y permitir una reacción con margen de maniobra. Actuar así, utilizando las métricas como ventana de transparencia, fomenta un clima de confianza con el cliente y refuerza nuestra reputación como profesionales.

Por lo tanto, la planificación probabilística es la alternativa idónea a las clásicas estimaciones en waterfall que consideran el desarrollo como un discurso determinista, lineal y maquinal. Utilizamos los datos generados en el pasado para extrapolar una predicción de lo que puede suceder en el futuro.

Las simulaciones de Monte Carlo exponen los riesgos que se asumen derivados de la aceptación de compromisos. Es una planificación orientada a un ciclo de retroalimentación para gestionar metas realistas dentro de un entorno ágil: Planificar, comprobar, reevaluar, replanificar.

 

Imagen: Pexels | Engin Akyurt

Author

  • Jorge Alarcón

    Scrum Master en Keepler. “Working with people to build products that solve problems. Digital transformation is the new industrial revolution based on the fractal creation of team-based development systems. I collaborate with companies to understand problems and develop solution strategies.”