El cono de incertidumbre en el desarrollo de software

La variabilidad de la incertidumbre en los proyectos de estos tipos de factores contribuye a la variabilidad en las estimaciones del proyecto; una estimación precisa de un fenómeno variable debe incluir la variabilidad del propio fenómeno. A medida que se investigan y se aclaran estas fuentes de variabilidad, la variabilidad del proyecto disminuye y, por lo tanto, también puede disminuir la variabilidad en las estimaciones de tiempo y económicas del proyecto. Este fenómeno se conoce como el “Cono de Incertidumbre”. Como sugiere la figura, una reducción significativa del Cono ocurre durante el 20-30% inicial del tiempo total del calendario del proyecto.

El eje horizontal contiene hitos comunes del proyecto, como el Concepto Inicial, la Definición del Producto, los Requisitos, y así sucesivamente. Debido a sus orígenes, esta terminología suena algo orientada al producto, pero no hay que olvidar que un sistema software no deja de ser un producto más, al menos debe tratarse como tal a la hora de abordar este tipo de proyectos.

El eje vertical contiene el grado de error que se ha encontrado en las estimaciones realizadas en varios puntos del proyecto. Las estimaciones podrían referirse a cuánto costará económicamente un conjunto particular de características y cuánto esfuerzo y tiempo será necesario para entregar ese conjunto de características, o podría ser cuántas características pueden entregarse para una cantidad particular de esfuerzo o tiempo, es por eso que este análisis nos permite analizar con mejor facilidad la definición de un MVP (Producto Mínimo Viable).

¿Cómo reducir el cono de incertidumbre?

En muchos proyectos nos vemos con la necesidad de poder tener más tiempo para poder trabajar la estimación, lo cual nos facilita contener menos incertidumbre y vislumbrar más detalles del proyecto, pero la realidad es que la precisión de la estimación de un software depende del nivel de refinamiento de la definición del software, es decir depende por completo de la información que el product owner o el cliente dispongan. Cuanto más refinada sea la definición, más precisa será la estimación. La razón por la que la estimación contiene variabilidad es que el proyecto de software en sí contiene variabilidad. La única forma de reducir la variabilidad en la estimación es reducir la variabilidad en el propio proyecto.

Un concepto importante y difícil es que el cono de incertidumbre representa la mejor precisión posible en las estimaciones de software en diferentes puntos de un proyecto. 

Otra forma en la que el cono representa una mejor estimación es que, si el proyecto no está bien controlado o si los estimadores no son muy acertadas, las estimaciones pueden no mejorar como lo muestra el cono. La siguiente figura muestra lo que sucede cuando el proyecto no se lleva a cabo de una manera que reduzca la variabilidad: la incertidumbre no es un cono, sino una nube que persiste hasta el final del proyecto. El problema no es realmente que las estimaciones no converjan; el problema es que el proyecto en sí no converge, es decir, no elimina suficiente variabilidad para respaldar estimaciones más precisas.

Relación entre el cono de incertidumbre y el compromiso

En muchos casos nos saboteamos inadvertidamente al hacer compromisos demasiado temprano en el cono de incertidumbre.

Si una organización se compromete en el momento del Concepto Inicial o la Definición del Producto, tiene un factor de error de 2x a 4x en sus estimaciones. Los compromisos realizados demasiado temprano en un proyecto socavan la previsibilidad, aumentan el riesgo, aumentan las ineficiencias del proyecto y perjudican la capacidad de gestionar un proyecto hasta finalizarlo.

Los compromisos significativos no son posibles en la parte inicial y amplia del Cono. La solución pasa por retrasar los compromisos hasta haber hecho el trabajo necesario para forzar la reducción del Cono, una de las soluciones más efectivas es realizar una consultoría previa al desarrollo del proyecto para asegurar el concepto inicial y la definición del producto. Los compromisos significativos se deberían realizar aproximadamente al 30% del tiempo estimado del proyecto para ser razonables y precisos.

El cono de incertidumbre y el desarrollo iterativo

En muchos proyectos, los equipos se conforman con un término medio en el que la mayoría de los requisitos se definen al inicio del proyecto, pero el diseño, desarrollo, la pruebas y la puesta en producción se realizan en iteraciones cortas. En otras palabras, el proyecto avanza secuencialmente hasta el hito de “Diseño de Interfaz de Usuario Completado” (aproximadamente al 30% del tiempo del calendario del proyecto) y luego cambia a un enfoque más iterativo desde ese punto en adelante. Esto reduce la variabilidad derivada del Cono a aproximadamente ±25%, lo cual permite un control de proyecto lo suficientemente bueno para alcanzar un objetivo mientras se aprovechan los principales beneficios del desarrollo iterativo. Los equipos de proyecto pueden dejar una cantidad de tiempo planificado para los requisitos aún por determinar al final del proyecto. Este término medio respalda la previsibilidad a largo plazo de costes y tiempo, así como una cantidad moderada de flexibilidad en los requisitos.

Conclusión

El cono de incertidumbre es una herramienta valiosa para comprender y gestionar la variabilidad en las estimaciones de proyectos de software. Reconociendo y gestionando esta variabilidad, los equipos de desarrollo podemos hacer compromisos más realistas y lograr una mayor precisión en la planificación y ejecución de proyectos. La adopción de prácticas iterativas puede ayudar a equilibrar la previsibilidad a largo plazo con la flexibilidad en la implementación de requisitos, permitiendo así un control de proyecto más efectivo y exitoso.

Referencia: