Thinking

Principio de Incertidumbre de los Proyectos

La serie Breaking Bad se popularizó hace pocos años. La serie trataba sobre un profesor de química (Walter White) al que le diagnostican un cáncer terminal y decide fabricar droga para dejarla en herencia a su familia. Waltier decide apodarse Heisenberg en honor al físico teórico alemán que promulgó el “Principio de Incertidumbre de Heisenberg”. En este principio de incertidumbre, se afirmaba que no podemos saber la velocidad y la posición de una partícula, porque cuanto más sabemos de uno menos sabemos del otro. ¿Nos recuerda esto el alcance y el tiempo en el software? Vamos a analizar el principio de incertidumbre de los proyectos en el mundo del conocimiento. 

El mundo cuántico reinventa la física

Cuando estudiaba en la Universidad, me apunté a una clase en la que un profesor nos explicaba filosofía aplicada al mundo de la informática. Una clase estuvimos hablando sobre el hecho de que,  a medida que el conocimiento humano avanza, descubrimos que nos falta mayor conocimiento. En el siglo XIX, la física clásica creía que lo había “descubierto todo”, salvo pequeños experimentos que terminarían de cerrarlo todo; entre ellos, estaba el “Efecto fotoeléctrico” descubierto por Hertz (1890). Sin embargo, treinta años después, Einstein y Milikan, fueron galardonados con el premio Nobel por su estudio de este efecto, que abrió la puerta a la física cuántica, con reglas muy diferentes al mundo clásico y generando un mundo nuevo de conocimiento. 

Dentro del mundo cuántico, Heisenberg postula su principio de incertidumbre. En él, afirmaba que no se puede determinar, en física cuántica, ciertos pares de variables como son la posición y el momento lineal (masa y velocidad). Es decir, que si sabemos dónde está una partícula, no sabemos su masa y su velocidad. Si averiguamos su velocidad, entonces no sabremos dónde está. 

Desde un punto de vista clásico, se pensaba que el problema era del aparato de medición, que, al intervenir, generaba incertidumbre. Sin embargo, el problema reside en que una partícula tiene superpuestos varios valores y, al fijar uno, generamos incertidumbre en el resto. 

El mundo ha cambiado

El desarrollo software es una disciplina muy reciente, apenas 70 años de vida. En este corto periodo, si lo comparamos con la arquitectura, descubrimos que los modelos de trabajo han cambiado. Inicialmente, utilizamos prácticas de control y orden, pensando que así conseguimos mejores resultados. Con el tiempo, hemos descubierto que el mundo del conocimiento es más complejo, su incertidumbre nos impide gestionarlo mediante control, y tenemos que usar aproximaciones “prueba-error” más cercanas al mundo científico. 

El software, además, es muy barato de transportar, lo que supone que es un entorno donde se compite a nivel global. Solo necesitamos observar  la guerra de redes sociales, entre TikTok o Facebook, por el control de algo tan etéreo como los datos, para confirmarlo. 

Este nuevo nivel de paradigmas, del que aún no parecemos ser conscientes, nos obligan a reinventar la manera en la que trabajamos. Si usásemos el Principio de Incertidumbre de Heisenberg en la realidad concreta, diríamos que no podemos saber dónde está un coche y su velocidad a la vez. ¡No tiene sentido! Porque el mundo cuántico tiene sus propias reglas y el mundo del software, también. 

El principio de incertidumbre de los proyectos

Si acudimos a la definición de Proyecto, que nos proporciona Project Management Institute, entenderemos que debe existir una fecha de inicio-fin, un alcance claro y un coste asignado. Es decir, tenemos que poder determinar todos los parámetros que componen nuestro proyecto y, después, velar por que se lleven a efecto. Sin embargo, cualquiera que haya trabajado en proyectos software sabe que, la mayoría de las veces, acabamos por destruir la calidad, echar muchas horas extras, dar bajos resultados y “disfrutar” de mucho estrés. Además, estamos muy obsesionados con que las personas trabajen mucho, sin saber si trabajan en lo correcto. 

En los proyectos, hay una regla que tenemos que tener clara: o fijamos el alcance o fijamos la fecha, ambos criterios no los podemos conocer al arrancar uno. Esto es el Principio de Incertidumbre de los Proyectos: puedo mantener uno de ellas fijo, pero entonces trabajaré con el otro en la entrega de valor. 

Por ejemplo, si tenemos una fecha impuesta, por un motivo coherente, como puede ser el Black Friday, entonces trataremos de construir el mejor alcance posible que genere valor para esa fecha. De esta manera, Scrum tiene sentido, no perdemos el tiempo en definir alcance, nos centramos en sacar adelante el producto y aprender continuamente a base de iteraciones. Ese aprendizaje nos lleva a crear un mejor producto, y todo antes de la fecha. 

En el caso de que fijemos el alcance, como puede ser la vacuna del COVID, trabajaremos el tiempo necesario hasta tener  un resultado. En este caso, las iteraciones nos sirven para evitar que nos desviemos, validar nuestras hipótesis y tratar de ser efectivos. En estos casos, buscamos acortar el tiempo lo máximo posible, pero no podemos sacar al mercado un producto defectuoso (una vacuna que genere muchas secuelas). 

¿Qué ocurre si ignoramos el principio de incertidumbre? 

Pensamos que el problema de la incertidumbre alcance-tiempo es debido a la falta de experiencia del equipo, o del cliente, o de otros factores como la tecnología. Realmente, la incertidumbre nace de que las necesidades de los clientes evolucionan mientras construimos nuestro producto. Por tanto, cuando ya las estamos cubriendo, aparecen nuevas. Se genera un proceso infinito de evolución que acaba cuando el producto queda obsoleto o no genera el valor esperado. 

Cuando tratamos de determinar ambas variables, se producen situaciones muy curiosas. De pronto, descubres que la fecha prevista no es posible y, rápidamente, nos piden una estimación que valide esto. En vez de seguir trabajando en nuestro producto, paramos al equipo para que se pongan a estimar, lo cual impacta negativamente en la fecha, porque cada minuto estimando es minuto no productivo. 

El principio de incertidumbre de los proyectos es tajante, no se trata de tener ambas aproximaciones, hay que centrarse en las restricciones de tu mercado (black friday o vacuna del covid), y trabajar con inspección y adaptación para generar valor.

Y tú, ¿tratas de fijar fecha y alcance? 

Deja un comentario