Margaret Hamilton dirigió equipos que desarrollaron el software de vuelo de Apollo en el Laboratorio de Instrumentación del MIT. En 1969, cuando el ordenador del Apollo 11 se sobrecargó durante el alunizaje, el sistema descartó tareas de menor prioridad para que las operaciones esenciales pudieran continuar.
Margaret Hamilton y los equipos de software de Apollo
Hamilton se incorporó al proyecto Apollo del MIT en 1965 como la primera programadora contratada y la primera mujer programadora del proyecto. En 1968 era subdirectora a cargo del equipo de software del módulo de mando y servicio. Más de 400 personas trabajaban en el software de Apollo, un esfuerzo colectivo en el que Hamilton dirigió equipos dedicados a los programas de vuelo de los módulos lunar y de mando y servicio.
Ese trabajo requería que el ordenador de a bordo respondiera a condiciones cambiantes sin perder de vista las tareas prioritarias. La lógica de recuperación por prioridades permitía apartar procesos secundarios cuando la carga de trabajo superaba lo previsto.
Cómo el software de Apollo gestionó una sobrecarga
Durante el alunizaje del Apollo 11, en julio de 1969, el ordenador se sobrecargó. El software descartó tareas de menor prioridad y mantuvo en marcha las operaciones esenciales para el aterrizaje. No era una solución basada en que el ordenador hiciera más cosas a la vez: consistía en decidir qué trabajo podía esperar para que el crítico siguiera adelante.
Esa capacidad de recuperación formaba parte del software desarrollado por los equipos de Apollo que Hamilton dirigió. La misión llegó al alunizaje mientras el sistema mantenía esas tareas esenciales.
El incidente de P01 y una salvaguarda
La atención a los errores también aparece en un episodio anterior. Lauren Hamilton, de cuatro años, seleccionó el programa P01 —una secuencia previa al lanzamiento— en un simulador configurado para un vuelo. El simulador se bloqueó y Hamilton propuso una modificación del software para prevenir ese tipo de problema.
En 1968, durante Apollo 8, Jim Lovell activó P01 por error y desaparecieron datos de navegación. Después de ese incidente, se incorporaron los cambios propuestos por Hamilton. El episodio del simulador y el error durante la misión fueron sucesos distintos, pero ambos pusieron a prueba cómo debía responder el software cuando se activaba una secuencia inadecuada.
De los primeros proyectos a la ingeniería de software
Antes de Apollo, Hamilton trabajó en programación meteorológica junto al meteorólogo Edward Lorenz. En 1961 se incorporó al proyecto SAGE del Laboratorio Lincoln del MIT, donde programó el ordenador prototipo AN/FSQ-7, también conocido como XD-1.
Hamilton defendió que el software recibiera el mismo reconocimiento que otras disciplinas de ingeniería. Contó que empezó a utilizar el término «ingeniería de software» para distinguir el software del hardware y, a la vez, situar ambos dentro de la ingeniería de sistemas.
Después de Apollo fundó Higher Order Software, en 1976, y Hamilton Technologies, en 1985. El producto insignia de esta última era Universal Systems Language, un lenguaje y una metodología para modelar sistemas complejos con énfasis en la prevención de errores y la programación defensiva.
Un logro colectivo y un reconocimiento público
Los listados de software asociados a Apollo representan el trabajo de los equipos del módulo lunar y del módulo de mando y servicio que Hamilton dirigió. En 2016, Barack Obama le concedió la Medalla Presidencial de la Libertad, uno de los reconocimientos públicos a su trayectoria.