Reseña: Facts and Fallacies of Software Engineering

Facts and Fallacies of Software Engineering (FFSE, para abreviar) es un libro que recopila "55 hechos y 5 + 5 falacias" (al autor le gustaba la reiteración de la 'f') del desarrollo del software. Los hechos son un resumen de lo que considera más importante saber a la hora de gestionar y desarrollar proyectos software, y las falacias, los engaños o equivocaciones más frecuentemente extendidos como ciertas.

El autor es Robert L. Glass, uno de los pioneros en el desarrollo de software: lleva más de 54 años metido en esto, así que algo debe saber. Publica un newsletter bimensual de pago, The Software Practitioner. Declara que, tras haber trabajado tanto desarrollando como gestionando, "le gusta más hacer que dirigir hacer a otros". Un tipo así no me podía caer mal.

La estructura de cada hecho o falacia siempre es la misma: expone el contenido, la controversia (si la hay), y concluye con las fuentes y referencias citadas.

Ejemplos de hechos:

  • El factor más importante es la calidad de los programadores.
  • Los mejores programadores son hasta 28 veces mejores que los peores.
  • Una de las dos causas más probables de fracaso de proyectos son los requisitos inestables.
  • Eliminar los errores es la fase que más tiempo consume del ciclo de vida.
  • La estimación se hace en el momento equivocado y la hace la gente equivocada.
Ejemplos de falacias:
  • No puedes gestionar lo que no puedes medir.
  • Herramientas y técnicas: una vale para todos los casos.
El balance del libro no es positivo, pero más por culpa de mis expectativas que porque el libro falle. Me ha decepcionado, probablemente me equivoqué al encargarlo, me tenía que haber informado más. Mi primer fallo es no haber hecho cuenta de lo que implica que sean sólo 200 páginas. No me gustan los libros innecesariamente grandes, pero considerando que se ocupa de 65 temas, eso deja poco más de tres páginas para cada uno. Si a eso añadimos que de esas tres páginas un trozo no despreciable se va en citar fuentes, podéis imaginar que no trata en profundidad casi nada. Cada hecho se resume a mostrar su opinión, citando ejemplos o fuentes interesantes, y comentar muy por encima la discusión al respecto.
A esto le uno que estoy de acuerdo con prácticamente todo, y con todo lo importante, así que en mí genera poco debate, que es siempre una de las cosas interesantes de leer opiniones ("¿No pensamos igual? ¿Estoy equivocado, o es él?"). Para que me den la razón en todo prefiero no leer o no discutir, lo interesante es cuando las opiniones no son iguales.

Lo mejor
  • Es una buena recopilación del "estado del arte" de la ingeniería del software, para ver de qué pie cojeamos.
  • Es gratificante ver que no soy el único que le preguntó a su profesor (bueno, él a sus alumnos) que por qué la estimación se sitúa antes de la recogida de requisitos sin obtener respuesta :).
  • Las fuentes son una buena biblioteca que todos los ingenieros del software deberíamos leer.
  • Tener algo físico que lanzarle a tu jefe a la cabeza. Tener una opinión más contrastada que la propia que poder utilizar como argumento con jefes y gestores que desprecian la programación y otras tareas triviales de esto de desarrollar aplicaciones.
Lo peor
  • No entra en profundidad.
  • No se aportan soluciones a los problemas.
  • Las cifras concretas aportadas, sin que las considere importantes de todas formas, me siguen pareciendo vagas y poco contrastables. Valen como idea general, pero no como cálculo aproximado (aunque puede que nunca lo vayan a ser, así que lo mejor creo que sería no intentar aportar cifras).

Posted by Juan Ignacio Sánchez Lara 16:23  

2 Comments:

  1. Joserra said...
    Interesante reseña, he estado tentado de comprar un libro de este autor varias veces, pero no me decidía. Ahora ya me decanto más por este otro: Software Creativity 2.0.

    Justo acabo de poner yo un listado de libros sobre desarrollo de sw, por si te interesa!
    Nacho said...
    Viendo tu extensa lista no creo que este libro te fuese a aportar nada, ciertamente :)

Post a Comment