miércoles, 11 de marzo de 2015

El optimismo como defecto... en la planificación de proyectos de software

Parafraseando el famoso dicho, podríamos afirmar que

Planificar siempre es difícil... especialmente si es a futuro.

En la sentencia original el verbo es predecir, y no planificar...pero en cierto modo la planificación es una predicción, bien que basada en la experiencia y, en ocasiones, en técnicas más o menos reconocidas.

Si bien la planificación es siempre compleja, parece como si los proyectos de software fuesen especialmente sensibles a un error de planificación que nace de un excesivo optimismo.

Por eso, en su famoso libro 'The mythical man-month', Frederick P. Brooks afirma:

All programmers are optimists

Y la experiencia indica que algo hay de cierto en esto. En efecto, los proyectos de software tienden con enorme frecuencia a retrasarse, probablemente mucho más que cualquier otro tipo de proyecto.

So the first false assumption that underlies the scheduling of systems programming is that all will go well.

Pero, ¿de dónde sale ese optimismo crónico?  

Dos son los argumentos que recoge el autor. 

Por una parte, el medio con el que trabaja el desarrollo software es un medio lógico, no físico y, por tanto, extremadamente maleable. Esto es diferente, por ejemplo, de la construcción de una vivienda donde los medios son materiales y mucho menos maleables. El software es casi pensamiento puro... y eso nos crea esa sensación de maleabilidad y de poder sobre ello. y de que no surgirán dificultades...cosa que es extremadamente falsa.

De hecho, y este es el segundo argumento, el software es extremadamente complejo y formado por muchísimos elementos. La probabilidad de que los avances de todos o la mayor parte de los componentes sean tal y como estaba planificado, es decir, que no surjan dificultades en ninguno de ellos, es extremadamente baja..,con lo que, aunque sólo sea por estadística, el optimismo en el mundo del software está absolutamente injustificado.

Y esa es la paradoja: al contrario de lo que sucede en la mayoría de los campos, en el caso de los proyectos de software, el optimismo lejos de ser una virtud es un defecto, un defecto frecuente, un defecto crónico...