La científica computacional, matemática e ingeniera de software estadounidense Margaret Hamilton, nació en Paoli, Indiana, el 17 de agosto del 1936.
Fue directora de la División de Ingeniería de Software del Laboratorio de Instrumentación del MIT, donde con su equipo desarrolló el software de navegación «on-board» para el Programa Espacial Apolo. Fue fundadora, en 1976, de la empresa Higher Order Software. En 1986, se convirtió en la fundadora y CEO de Hamilton Technologies, Inc. en Cambridge, Massachusetts. La compañía se creó alrededor del lenguaje universal de sistemas basada en su paradigma de «desarrollo antes del hecho» (DBTF, del inglés Development Before the Fact) para sistemas de diseño de software. Acuñó el término “ingeniería de software” para distinguir entre el trabajo de hardware y otras ingenierías. A pesar de que su idea no fue bien recibida al inicio, al final el software generó el mismo respeto que otras disciplinas.
Su enfoque del diseño de software fue pionero para la época, ya que los requisitos de robustez y tolerancia a fallos eran una prioridad para la seguridad y supervivencia de los astronautas durante los viajes a la Luna, es por eso que para muchos Margaret Hamilton es considerada una de las primeras personas en convertirse en Ingeniera de Confiabilidad del Sitio.
De 1961 a 1963, Hamilton trabajó en el Proyecto Semi-Automatic Ground Environment (SAGE) en el MIT Lincoln Lab, donde fue una de las programadoras que escribió software para el prototipo de computadora AN / FSQ-7 (el XD- 1), utilizado por la Fuerza Aérea de los Estados Unidos para buscar aviones posiblemente hostiles. También escribió software para un proyecto de rastreo de satélites en los Laboratorios de Investigación de Cambridge de la Fuerza Aérea. El Proyecto SAGE fue una extensión del Proyecto Torbellino, iniciado por el MIT para crear un sistema informático que pudiera predecir los sistemas meteorológicos y rastrear sus movimientos mediante simuladores. SAGE pronto se desarrolló para uso militar en defensa aérea antiaérea
Los éxitos de Hamilton en SAGE le llevaron a ser contratada por Dan Lickly para el proyecto Apollo. Uno de sus mayores logros durante la dirección del desarrollo del sistema operativo para las misiones Apolo fue el sistema de excepciones y carga asincrónica de tareas que jugó un papel crucial momentos antes del alunizaje de la misión Apolo 11, ya que cuando los astronautas se estaban preparando para descender, la computadora empezó a arrojar los errores 1201 y 1202. Durante unos minutos no sabían si proceder con el alunizaje o no, debido al error que mostraba la computadora, pero el equipo de Hamilton rápidamente encontró entre sus notas que ese código significaba que la computadora estaba limpiando la lista de tareas de procesos poco prioritarios para dedicarle todo el procesamiento a las funciones de descenso.
Se intercambiaron mensajes clave desde el módulo de mando al complejo de comunicaciones de la NASA con el espacio profundo, situado en Robledo de Chavela, Madrid, y de allí a Houston, al centro de operaciones de la NASA. De allí los mensajes volvían a Robledo de Chavela y luego de nuevo al módulo lunar donde se encontraban los astronautas. Debido a la espontaneidad de la situación y la dificultad de las comunicaciones, no fue posible intercambiar mucha información en aquellos instantes, por lo que la rapidez e inmediatez fueron aspectos clave para el éxito de la misión. Antes las dudas del comandante de la misión, Neil Armstrong, sobre si llevar a cabo el alunizaje o no, la respuesta fue concedida por Margaret Hamilton, quien aseguró que ese se podía efectuar de forma segura.
Una vez resuelta la incógnita de qué significaba el mensaje de error, se procedió con el descenso en la Luna, el cual fue exitoso. Más tarde se descubrió que los mensajes de error no eran por un problema de software, sino que en la lista de procesos que le entregaron a Buzz Aldrin para la preparación de los instrumentos se lo instruyó a que encendiera un radar que no era utilizado durante el descenso, pero que podría ser útil en caso de requerir abortar la misión, ese radar empezó a llenar el procesamiento del sistema con tareas de medición debido a todo tipo de lecturas que estaban llegando desde sus sensores, gracias a que Hamilton con su equipo tuvieron en cuenta cómo resolver un problema de ese tipo, el hecho no terminó en ningún incidente.
Otro momento destacable durante la fase de diseño del sistema de navegación para las misiones Apolo fue la detección de un error gracias a que Lauren, hija de Margaret Hamilton, estaba jugando con el sistema de simulaciones híbridas de la computadora, y activo accidentalmente el programa de «pre lanzamiento» (prelaunch o p01) durante una misión, logrando un error en el sistema que derivó en la eliminación de los datos de navegación ya cargados. Dado el incidente Hamilton propuso una modificación en el sistema para evitar que pudiera suceder en una misión real, pero la administración le respondió que no consideraba la posibilidad ya que los astronautas estaban entrenados para evitar ese tipo de errores humanos. Sin embargo, durante la misión Apolo 8, y a pesar de que Hamilton documentó el problema de manera clara, los astronautas ejecutaron accidentalmente el programa p01 en medio de la misión entrando en modo crítico sin datos de vuelo, pero gracias a Hamilton había documentado como volver a reenviar los datos de navegación en caso de que ese accidente ocurriera. Poco después del incidente los cambios propuestos por Hamilton originalmente fueron aprobados para las siguientes misiones.
A Anthony Oettinger, Barry Boehm, y Margaret Hamilton se les ha atribuido el origen del nombre de la disciplina de «ingeniería del software». Hamilton detalla cómo llegó a inventar el término «ingeniería del software»: «Cuando se me ocurrió el término de ingeniería de software, nadie había oído hablar de él, al menos en nuestro mundo. Fue una broma constante durante mucho tiempo. Les gustaba bromear con mis ideas radicales. Fue un día memorable cuando uno de los gurús más respetados del hardware explicó a todos en una reunión que estaba de acuerdo conmigo en que el proceso de construcción de software debería considerarse también una disciplina de ingeniería, al igual que el hardware. No porque aceptara el nuevo término en sí, sino porque nos habíamos ganado su aceptación y la de los demás en la sala como un campo de ingeniería por derecho propio.»
Cuando Hamilton comenzó a utilizar el término «ingeniería de software» durante las primeras misiones Apolo, el desarrollo de software no se tomaba en serio en comparación con otras ingenierías, ni se consideraba una ciencia. Hamilton consiguió legitimar el desarrollo de software como una disciplina de ingeniería, que, con el tiempo, obtuvo el respeto que merecía.
En 2019, para celebrar los 50 años del aterrizaje del Apolo 11, Google decidió hacer un homenaje a Hamilton. Se utilizaron 107 000 espejos que, cubriendo un área mayor que el de Central Park, en el desierto de Mojave (California), reflejaron la luz de la luna y recrearon la imagen de Margaret Hamilton y el Apolo 11.
Hamilton ha publicado más de 130 artículos, actas e informes, y ha llevado a cabo sesenta proyectos y seis grandes programas. El 22 de noviembre de 2016, Hamilton recibió la Medalla Presidencial de la Libertad, entregada por el expresidente de Estados Unidos Barack Obama, por su trabajo en la NASA durante las misiones Apolo.
Referencias
- Margaret Hamilton. Enciclopedia Británica. https://www.britannica.com/biography/Margaret-Hamilton-American-computer-scientist
- Margaret Hamilton (científica). Wikipedia. https://es.wikipedia.org/wiki/Margaret_Hamilton_(cient%C3%ADfica)