Hace cincuenta años del nacimiento de la ingeniería de software. Bueno, de su nacimiento “oficial”. Normalmente, se considera que la ingeniería de software tuvo su origen histórico en esta conferencia del comité científico de la OTAN el año 1968 (aunque también hay quién dice que el término ya se usaba antes). El origen exacto del término “Ingeniería de Software” es más discutido, pero el consenso actual es que fue popularizado por Margaret Hamilton  cuando estaba trabajando en el desarrollo del software de navegación para el Programa Espacial Apolo.

En todo caso, para celebrar la efeméride, la Ernst Denert Foundation for Software Engineering ha puesto a libre disposición una serie de vídeos grabados en 2001 con motivo de la reunión “Software Pioneers’ Conference”. Estos vídeos son una ocasión única para escuchar la opinión de 16 de las figuras más importantes de la Ingeniería de Software (aunque creo que sólo Dijkstra estaba ya en la conferencia de 1968) acerca de la historia de la disciplina y su evolución hasta el momento actual.

Los ponentes fueron Ernst Denert, Tom DeMarco, Niklaus Wirth (el ejemplo que siempre uso para reclamar la necesidad de enseñar historia de la programación), John V. Guttag, Michael Jackson, Fred P. Brooks, David L. Parnas, Peter Chen, Alan Kay, Manfred Broy, Tony Hoare, Barry Boehm, Edsger W. Dijkstra, Michael Fagan, Friedrich L. Bauer, Erich Gamma, Ole-Johan Dahl, Kristen Nygaard and Rudolf Bayer.

Ya veis que en esta lista tenéis de todo: ganadores de premios turing , inventores de lenguaje de programación (como el ya mencionado Wirth) y modelado (Chen con su lenguaje de diseño de bases de datos Entity-Relationship) y autores de algunos de los libros de lectura obligatoria (¿quién no ha leído el clásico Patrones de diseño?). Y no me molesto ni a enlazar a sus páginas personales porqué apuesto a que todos tienen ya una página dedicada en la Wikipedia.

Un documento único tanto para vosotros como para vuestros estudiantes (si sois profesores). De verdad que vale la pena.

Y si queréis la versión corta, este artículo de Grady Booch es un buen resumen de la historia de la Ingeniería de Software. Me quedo con la frase con la que cierra el artículo:

Una cosa sé. No importa cual sea el medio, tecnología o dominio, los principios fundamentales de la ingeniería del software seguirán siendo los mismos: abstracción, separación de intereses (“concerns”), distribución de responsabilidades, buscar la simplicidad,…