He leído: Facts and Fallacies of Software Engineering de Robert L. Glass

La ingeniería del software es muy diferente a otras ingenierías. En ingeniería mecánica, si tu calculas las dimensiones de una viga biapoyada para que soporte una tonelada, tu solución si es correcta será idéntica a la del resto de ingenieros de este mundo. Y cuando la viga en cuestión se construya, el resultado será prácticamente idéntico con independencia de quien realice el trabajo. La ingeniería mecánica tiene la ventaja de poder apoyarse en verdades universales, indiscutibles, en verdades matemáticas, en teoremas. Generalmente la solución a un problema es única y los métodos para llegar a ella también. Además el proceso para ‘desarrollar’ una viga de una tonelada es exactamente el mismo que para desarrollar una de diez.


Desgraciadamente en la ingeniería del software (que nombre más desafortunado) la historia es completamente diferente. Un proyecto de software tiene, virtualmente, infinitas soluciones correctas. Y además existen infinitas implementaciones que pueden funcionar correctamente. El problema es que en la ingeniería del software no contamos con teoremas y verdades matemáticas en los que basar el desarrollo de nuestros proyectos. No hay verdades absolutas en el desarrollo de software y eso complica los problemas. Cualquiera puede tener opinión, por absurda que sea, y sin embargo no existe una manera formal de rebatirla.

Pero no todo son malas noticias, en el desarrollo de software no tenemos teoremas, pero contamos con ciertos principios bien estudiados, documentados y universalmente ¿conocidos?. No, el problema principal es que estos principios no son universalmente conocidos, sino que a menudo los gestores y desarrolladores los ignoramos. Tendemos a fabricarnos los nuestros. Lo motivos son muy variados como para entrar en el porqué.

Robert L. Glass en Facts and Falacies of Software Engineering a recopilado un motón de estos principios y a documentado sus fundamentos amplísimamente. Además, consciente de que muchos de esos principios se cuestionan a menudo, a incluido una sección en la que recopila la controversia que cada uno de estos principios genera. Un libro espectacular, ameno de leer, que realiza un repaso de cabo a rabo de los fundamentos de la ingeniería del software. Si existiesen teoremas en ingeniería del software, sin duda esta sería una recopilación imprescindible de los mismos.

Otro valor añadido es la enorme cantidad de bibliografía con la que el autor a documentado el libro, parece que ha leído todo libro o documento relevante o no que se haya publicado en los últimos años sobre ingeniería del software.

Un libro que recomiendo a todo aquel mínimamente interesado en la ingeniería del software. Si ya has leído mucho sobre ingeniería del software, este libro es un recordatorio conciso y preciso de todo lo relevante que hayas leído. Si no has devorado libros sobre gestión de proyectos, arquitectura, buenas prácticas y demás y no tienes el tiempo y las ganas de hacerlo, este libro es ideal pues puedes leer un resumen de lo más relevante en un puñado de amenas páginas. De todos modos creo que después de leer este libro te picará el gusanillo para leer parte de la bibliografía que contiene.

Resumiendo: corre a comprarlo, merece la pena cada dólar que cuesta. Es el primer libro que léo de este prolifico y veterano autor, pero no será el último.

2 comentarios sobre “He leído: Facts and Fallacies of Software Engineering de Robert L. Glass”

  1. Estimado, si bien creo que el tema del libro es muy bueno, no creo que la ingenieria de sofwtare sea diferente a la mecanica, la unica diferencia que una tiene mas de 60000 años de diferencia…. me pararece que en 6000 años (seguramente mucho menos) la ingenieria de soft va a ser tan similar a las otras ingenierias que hasta va a ser aburrida
    Saludos!

Responder a anonymous Cancelar respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *