Si te hablo del Apolo 11 y de su llegada a la Luna, seguro que te vienen a la cabeza los nombres de Armstrong y Aldrin. Pero ellos (junto a Collins, quien no pisó el satélite) son sólo la cara visible del proyecto. ¿Sabías que la persona responsable de desarrollar el programario de navegación fue una mujer? Voy a hablarte de Margaret Hamilton.
Los inicios de Margaret Hamilton
Margaret Hamilton nació en Indiana (EEUU) el 17 de agosto de 1936. Se graduó en matemáticas en el Earlham College en 1958 y estuvo enseñando matemáticas y francés en un instituto una temporada. Se mudó a Boston con su marido con la intención de realizar un postgrado en matemáticas abstractas en la Universidad de Brandeis. Finalmente, en vez de esto se unió al MIT (Massachusetts Institute of Technology). Allí, se incorporó al desarrollo de programario en el departamento de meteorología, bajo las órdenes del Dr. Edward Lorenz.
Por entonces, ni la informática ni la ingeniería de software eran disciplinas académicas. Los programadores aprendían en base a la práctica y la experiencia.
Durante esta etapa de su carrera, hasta 1963, desarrolló código para los Laboratorios de Investigación de Cambridge de las Fuerzas Aéreas. Fue una de las personas que escribió el primer código para el ordenador AN/FSQ-7.
Estos trabajos, enmarcados en el Proyecto SAGE que se utilizó durante la Guerra Fría, le valieron la candidatura para formar parte del Proyecto Apollo de la NASA.
Margaret Hamilton en la NASA
Margaret se unió al Charles Stark Draper Laboratory en el MIT. Con el tiempo, fue nombrada Directora y supervisora de software del programario del Apollo.
Parte de su equipo era el responsable de diseñar el software de vuelo. Éste incluía el alunizaje, y posteriormente fue utilizado en el SkyLab (la primera estación espacial estadounidense).
Otra parte del equipo tenía designados el desarrollo de los sistemas de software. Estos sistemas implicaban procesos tan complejos como la detección de errores y el software de recuperación o de reestablecimiento del sistema. Hamilton también diseñó y desarrolló las rutinas de inicio.
La experiencia adquirida por Margaret Hamilton la llevaron a desarrollar conceptos que son la base de la programación actual.
Por entonces Margaret tenía una hija, a quien se llevaba los fines de semana al laboratorio.
Crisis en el Apollo 11
Tres minutos antes del alunizaje del Apollo 11, se activaron varias alarmas en el ordenador de a bordo. El equipo estaba sobrecargado con interrupciones causadas por un subministro incorrecto de energía al radal del módulo de aterrizaje. El ordenador de a bordo logró evitar la interrupción del alunizaje gracias a la arquitectura asíncrona del software. Esta característica ordena las tareas a realizar por prioridades.
Margaret Hamilton lo explicó así en 1971:
«
A causa de un error en el manual de la lista de control, el interruptor del radar de encuentro se colocó en una posición incorrecta. Esto provocó que se enviasen señales erróneas al ordenador. El resultado fue que el equipo llevaba a cabo todas las funciones normales para el alunizaje mientras a la vez recibía una carga extra de datos que consumían el 15% de su tiempo.
El software era lo suficientemente inteligente como para reconocer que se estaban ejecutando más procesos de los necesarios. A continuación, envió una señal de alarma al astronauta, diciéndole: “Estoy sobrecargado con más tareas de las que tendría que estar haciendo en este momento y voy a hacer sólo las más importantes”. Esto es, las que se necesitan para el alunizaje… En realidad el ordenador estaba programado para hacer algo más que reconocer condiciones de error. Un conjunto completo de programas de recuperación fue incorporado en el programario. Su acción, en este caso, fue eliminar las tareas de baja prioridad y reestablecer las más importantes. Si el ordenador no hubiese reconocido este problema y hubiese tomado las medidas de recuperación pertinentes, dudo que el alunizaje del Apollo 11 se hubiese producido con éxito.
“Computer Got Loaded”, Letter to Datamation, March 1, 1971
»
El salto empresarial
Entre 1976 y 1984 fue la CEO de HOS (Higher Order Software), una empresa dedicada a programar software de prevención de errores y poder desarrollar todas las ideas que le surgieron durante su experiencia en el MIT. Parte de sus logros se utilizaron en el ordenador de a borde del Air Force.
En 1986 fundó Hamilton Technologies, una compañía centrada en el entorno automatizado de USL (Universal Systems Language).
El legado y los reconocimientos de Margaret Hamilton
Margaret Hamilton ha sido ampliamente reconocida por sus aportaciones en el campo de la computación. A ella le debemos el término ingeniería de software, un concepto que costó que se tomase en serio:
«
Cuando llegué con la expresión, nadie había oído hablar de ella antes, al menos en nuestro mundo. Fue como una broma durante mucho tiempo. Les gustaba burlarse de mis ideas radicales. Un día memorable fue cuando uno de los gurús del hardware más respetados explicó a todo el mundo que estaba de acuerdo conmigo en que el proceso de creación de software también debía ser considerado como una disciplina de ingeniería, como ya pasaba con el hardware. No sólo por la aceptación del término, sino porque nos habíamos ganado su aprobación y la aceptación de todos los presentes en la sala por derecho propio.
»
En 1986 recibió el Premio Ada Lovelace, que se concede a personas que hayan destacado en el campo científico o técnico de manera excepcional, o que hayan hecho grandes contribuciones informáticas.
En 2016 Barack Obama le otorgó la Medalla presidencial de la Libertad, por su contribución al programa Apollo 11.
Además, Lego la ha incluido en una colección llamada Women in NASA:
¿Conocías la figura de Margaret Hamilton? ¡Cuéntamelo en los comentarios!