Como el software impidió la guerra de las galaxias

Durante la guerra fría, en 1983, el presidente estadounidense Ronald Reagan propuso la creación de la Iniciativa de Defensa Estratégica (o SDI, de Strategic Defense Initiative), más conocida como “Guerra de las Galaxias”, cuyo objetivo era crear un escudo de satélites antimisiles que defendiese a EE.UU. frente a un ataque nuclear por parte de la URSS. Iniciativa que nunca se llevo a cabo, principalmente por el coste… y por el software.
Durante los estudios de viabilidad del proyecto se crearon varias comisiones, una de ellas la de asesoría en computación; donde uno de los nueve miembros de la misma, David Parnas (conocido por interesantes reflexiones, destacando el desarrollo del concepto “ocultación de la información”), tras estudiar el proyecto dimitió del mismo, por las pocas garantías de un proceso de pruebas sobre un software de tales requerimientos «Because of the extreme demands on the system and our inability to test it, we will never be able to believe, with any confidence, that we have succeeded» (la cita se puede encontrar en el Time, del 22 julio de 1985, resumido aquí).
Tras su dimisión, Parnas escribió ocho ensayos (que Communications de ACM reprodujo en 1985, también libre aquí, y que originalmente se publicaron en American Scientist, vol 73, nº 5), en los que argumentaba que el software no sería fiable (se estimó un tamaño de entre 19 y 35 millones de líneas de código y unos 100.000 años hombre de programación) y que sería una amenaza para la humanidad. Los ocho ensayos se centraban en:

1 – Las diferencias entre la ingeniería del software y otras ingenierías [una de las bases del paradigma ágil], y por qué el software no sería fiable (sobre este tema, te recomiendo este post).

2 – Propiedades del software requerido que lo hacen irrealizable.

3 – Porque las técnicas de uso para desarrollar software no son adecuadas para este proyecto.

4 – La naturaleza de la investigación en ingeniería del software, y porque las mejoras que esta pueda aportar no serán suficientes para permitir la construcción del software.

5 – Porque investigar en inteligencia artificial no ayudará para desarrollar un software fiable.

6 – Porque la investigación en programación automática no posibilitará las mejoras necesarias.

7 – Porque las técnicas de verificación no pueden hacer suficientemente fiable al software.

8 – Porque fondos de investigación en software y otros no serían la solución.

No sólo Parnas criticó la capacidad para desarrollar el software del proyecto “star wars”, otros como Herbert Lin del MIT, basaron sus críticas en que «Ningún programa funciona correctamente la primera vez» o como comentó Thomas Probert, Director de Computación e Ingeniería del Software del Instituto de Análisis de Defensa: «El hardware estará allí pero el verdadero problema es el software”.

jgarzas

Ph.D. en informática, Postdoctorado en la Carnegie Mellon (EE.UU) e Ingeniero en Informática.

Primera vez que me tocó hacer una gestión Ágil en una empresa... año 2001. Desde entonces he trabajado en, o para, más de 90. Y he formado a más de 2000 alumnos.

También soy profe de la Universidad Rey Juan Carlos.

4 comentarios en “Como el software impidió la guerra de las galaxias”

  1. Una vez más, otro ineresante artículo. Además reune dos de mis aficiones: el software y la historia alrededor de la guerra fría.

    Leyendo tu post me han entrado ganas de leer los artículos de Parnas. Me los anoto para cuando tenga un hueco.

    Una crítica constructiva: modifica el título y añade «de las» entre Guerra y Galaxias.

  2. Pingback: Los peores bugs de la historia | Javier Garzás

Dejar un comentario

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