Margaret Hamilton murió a los 90 años, tras una trayectoria vinculada al desarrollo del software de guiado a bordo de las naves del programa Apolo de la NASA y a la acuñación del término «ingeniería de software». Hamilton dirigió equipos que desarrollaron el software utilizado en seis misiones de alunizaje entre 1969 y 1972, y posteriormente recibió la Medalla Presidencial de la Libertad de Estados Unidos en 2016.
Código que gestionó una carga informática crítica
La principal contribución de Hamilton fue el diseño de un mecanismo de seguridad integrado en el software del sistema de guiado. El sistema estaba diseñado para distinguir entre tareas esenciales y secundarias cuando la computadora de la nave recibía órdenes que superaban su capacidad de procesamiento en tiempo real: cancelaba las tareas de menor prioridad y reiniciaba las operaciones necesarias para la misión, además de emitir una alarma para alertar a los astronautas.
El efecto de este diseño se hizo visible durante el descenso del módulo lunar «Eagle» en la misión Apolo 11, en 1969. Cuando Buzz Aldrin introdujo órdenes para mostrar la altitud y otros datos, la computadora comenzó a emitir alarmas debido al aumento de la carga. Sin embargo, el mecanismo de seguridad mantuvo las tareas necesarias para el aterrizaje, lo que permitió que la nave llegara a salvo al Mar de la Tranquilidad en lugar de cancelar el descenso.
De la simulación meteorológica al Apolo
Hamilton comenzó su trayectoria después de graduarse en Matemáticas en el Earlham College en 1958. Trabajó con el matemático del Instituto Tecnológico de Massachusetts Edward Lorenz y programó la computadora LGP-30 utilizada en simulaciones meteorológicas, antes de incorporarse en 1961 al proyecto SAGE del MIT para escribir software que ayudara a la Fuerza Aérea de Estados Unidos a buscar posibles aviones enemigos.
Durante su trabajo en SAGE y en la investigación del Apolo, Hamilton se centró en la fiabilidad del software y la prevención de errores. Un ejemplo fue lo que más tarde se conoció como el «error de Lorenz», cuando la introducción de una secuencia de lanzamiento preestablecida en el simulador de la misión provocó que el sistema fallara. Hamilton pidió añadir una protección para impedir este tipo de errores, y posteriormente se produjo realmente una entrada similar durante la misión Apolo 8, lo que hizo necesario recuperar los datos de navegación.
Un legado que va más allá del programa Apolo
Tras la finalización del programa Apolo, Hamilton continuó trabajando en la prevención de errores y la tolerancia a fallos. En 1976 fundó la empresa Higher Order Software, que dejó en 1985 para fundar Hamilton Technologies, cuyo principal producto era Universal Systems Language, destinado al desarrollo de sistemas de software complejos, dando prioridad a la prevención de errores y a la programación defensiva.
El software del Apolo que ayudó a desarrollar se añadió a GitHub en 2015, y Google la homenajeó en 2019 con una imagen gigantesca creada por más de 100.000 espejos en una planta de paneles solares del desierto de Mojave.
¿Por qué importa esta noticia?
La importancia del legado de Hamilton no reside únicamente en que su código formara parte de un logro histórico, sino en demostrar que la fiabilidad comienza con el diseño del sistema, antes de que aparezca el fallo. El software no evitó la sobrecarga de la computadora, pero determinó qué debía sacrificarse y qué debía conservarse, y convirtió una situación que podía poner en peligro la misión en un procedimiento de recuperación ordenado. Esta idea sigue siendo fundamental en los sistemas cuyas condiciones de funcionamiento no permiten fallar ni volver a intentarlo fácilmente.