Estimación y planificación detallada
Un error habitual en gestión de proyectos es creer que la mejor manera de estimar el coste o la duración de un proyecto es realizar una división del trabajo en tareas. Veía este error hace pocos días entre los comentarios al post titulado Tengo un plan: ser ágil. Es curioso cómo en varios comentarios se ligaba estimación con planificación detallada. El argumento era más o menos el siguiente: puesto que las metodologías ágiles no realizan una estimación detallada más que en el momento de abordar una iteración o sprint ¿cómo podemos estimar?.
Lo primero, me gustaría explicar porque las metodologías ágiles no tratan de realizar una planificación detallada: es una simple cuestión de economía. Realizar una planificación detallada es un esfuerzo grande. Además todos sabemos los volátiles que tienden a ser las planificaciones. Cuando más detalladas más volátiles. Según una aproximación ágil, el coste de realizar una planificación detallada no merece la pena.
Lo segundo, no realizar una planificación detallada, no significa no realizar una planificación en absoluto. Es posible realizar una planificación suficiente para guiar el proyecto a medio y largo plazo sin necesidad de de que esta sea demasiado detallada. Los riesgos de una planificación excesiva siempre amenazan a los proyectos y en ocasiones son más peligrosos que los de una planificación escasa. Incluso existe un patrón que describe esta situación ‘Death by planning’, su nombre lo dice todo.
Bueno una vez dejado claro que las metodologías ágiles no propugnan no hacer planificación sino hacer la que es imprescindible, volvamos al tema que nos ocupa. ¿es necesaria una planificación detallada para poder estimar?. No, y lo voy a 'demostrar' con un pequeño ejercicio de estimación que os pido realicéis, y me hagáis llegar vuestros resultados en los comentarios. No pongaís por favor cual debería ser el resultado obtimo, cualquiera lo puede averiguar. Solo contadme cual fue vuestra desviación en cada una de las estimaciones del ejercicio.
El ejercicio es el siguiente: Debéis estimar la distancia entre Bilbao y Ámsterdam. No vale usar MapPoint ¿eh?. Seguro que estáis pensado que es algo difícil, que no tenéis información suficiente, pero eso es precisamente lo que ocurre la mayor de las veces en un proyecto de software. Debéis estimar con poca información o lo que es peor en base a información incompleta o sesgada.
Bueno venga… ¿tenéis ya una estimación?. Apuntadla.
Ahora os propongo hacer el equivalente a detallar más el plan de proyecto y estimar en base a la descomposición del viaje en etapas, actuación en cierto modo equivalente a estimar un proyecto en base a la subdivisión en tareas. Os diré por qué ciudades tendréis que pasar, así podréis estimar tramos más pequeños, y en teoría vuestra estimación debería ser más exacta. ¿Lo será?.
El itinerario pasa por: Bilbao – Bayona – Burdeos – Orleans – Paris – Amberes – Amsterdam
Debéis estimar estos tramos y sumar el resultado.
Ahora podéis comparar vuestras dos estimaciones con el valor real. ¿A mejorado en algo el tener un itinerario más detallado vuestra estimación? Seguro que no.
Podriamos refinar más aun el itinerario, e incluir más tramos, pero ¿creeís que esto mejoraría la estimación?.
La conclusión de este pequeño ejercicio: Una planificación detallada no mejora en nada nuestra capacidad de estimar.
Entonces ¿qué podemos hacer para mejorar nuestras estimaciones?… en el próximo post os lo cuento ;).