Hace medio siglo, ella enseñó al ordenador espacial a fallar de forma segura.

Margaret Hamilton, la programadora que dirigió la creación del software a bordo para el programa lunar Apollo, falleció el 30 de septiembre en Estados Unidos a los 90 años. Los desarrollos de su equipo jugaron un papel especialmente importante durante el alunizaje del Apollo 11: la computadora del módulo lunar se sobrecargó apenas unos minutos antes del aterrizaje, pero continuó ejecutando las tareas más importantes.
El momento tenso ocurrió el 20 de julio de 1969, cuando el Eagle ya descendía hacia la superficie lunar. La computadora a bordo comenzó a emitir advertencias 1201 y 1202. La máquina carecía de recursos para todas las solicitudes entrantes, y los astronautas Neil Armstrong y Buzz Aldrin no sabían si el error permitiría continuar el alunizaje.
Lo que salvó la misión fue un mecanismo del software. La computadora podía descartar tareas secundarias y mantener en cola lo imprescindible para que el alunizaje fuera posible: el control del motor, la navegación y la comunicación con la tripulación. Al sobrecargarse, el sistema se reiniciaba, restablecía los programas críticos y no reanudaba tareas innecesarias que saturaban la cola. Los especialistas en la Tierra sabían cómo funcionaba ese mecanismo, por lo que tras las señales de alarma autorizaron a la tripulación a continuar el descenso.
Hamilton dirigía el equipo que escribía el software para el módulo de mando y el módulo lunar de Apollo. Los ingenieros partían de una idea desagradable pero práctica: en vuelo puede ocurrir una situación que los diseñadores no habían previsto literalmente. Por eso el programa debía priorizar por sí mismo, sobrevivir a fallos y restaurar los procesos importantes. Hoy ese enfoque se relaciona con la tolerancia a fallos y la programación defensiva, pero en la década de 1960 los desarrolladores tuvieron que abrirse paso en gran medida por sí mismos.
Uno de los casos más ilustrativos ocurrió aún antes del alunizaje. La hija de cuatro años de Hamilton jugaba con el simulador del módulo de mando y, durante un vuelo simulado, activó por accidente un programa destinado a la preparación previa al lanzamiento. El simulador dejó de funcionar correctamente. Hamilton propuso proteger el sistema real contra ese tipo de comandos, pero la idea se rechazó al principio: se consideraba que los astronautas preparados no cometerían ese error.
Unos años después ocurrió casi lo mismo ya en el espacio. Durante el Apollo 8 Jim Lovell lanzó por error el programa de prearranque, lo que provocó que la computadora perdiera datos de navegación. El equipo de Hamilton tuvo que buscar la forma de recuperar la información, y la protección propuesta anteriormente se añadió al programa tras el incidente.
Para Hamilton esos errores se convirtieron en argumento a favor de un principio simple: un buen software debe tener en cuenta no solo las acciones correctas de las personas. La programadora defendió de forma constante un enfoque en el que los desarrolladores piensan de antemano en las sobrecargas, en las órdenes incorrectas y en los estados inesperados del sistema, en lugar de confiar en condiciones ideales.
Hamilton también ayudó a consolidar el propio concepto de ingeniería del software. En la década de 1960 los programas a menudo se consideraban secundarios frente al hardware, aunque la complejidad del código para Apollo crecía rápidamente. Hamilton luchó por que el desarrollo de software fuera visto como un trabajo de ingeniería completo, donde la arquitectura, la verificación de errores y la fiabilidad exigen tanta disciplina como la creación de la propia computadora.
Una de las imágenes simbólicas de su carrera fue la fotografía tomada en 1969: Hamilton aparece junto a una alta pila de código impreso, escrito por los equipos para las computadoras embarcadas del Apollo. Tras el fin del programa lunar fundó dos empresas y continuó desarrollando métodos para crear programas diseñados para errores y situaciones imprevistas. En 2016 Hamilton recibió la Medalla Presidencial de la Libertad, una de las más altas condecoraciones civiles de Estados Unidos.