Margaret Hamilton: el software que llevó al hombre a la Luna
Arnold Wender · · 11 min de lectura
Ver todo: Geeks famososEl 20 de julio de 1969, a las 4:17 p.m. hora del este, el módulo lunar Eagle tocó la superficie de la Luna. En los cuatro minutos previos al alunizaje, la computadora de a bordo disparó cinco alarmas de error seguidas. Mission Control podría haber abortado la misión. No lo hizo, porque el software sabía exactamente qué estaba pasando: estaba desbordado de trabajo no crítico, lo estaba descartando en tiempo real y mantenía activos los sistemas de aterrizaje. Ese comportamiento no fue un accidente — fue el resultado de años de trabajo disciplinado de un equipo dirigido por una matemática de 32 años llamada Margaret Hamilton.
Hamilton no solo escribió código para la misión más importante de la era espacial. Fue la primera en tratar el software como una disciplina de ingeniería con sus propias reglas, metodologías y estándares de rigor. Antes de ella, el software era algo que los matemáticos hacían de manera informal. Después de ella, era una profesión. Literalmente: ella acuñó el término.
Lo esencial sobre Margaret Hamilton
- Nació el 17 de agosto de 1936 en Paoli, Indiana, Estados Unidos — sigue viva a los 89 años y activa en la industria como CEO de Hamilton Technologies
- Dirigió el desarrollo del software de vuelo del Apollo en el MIT Instrumentation Laboratory: el código que controló el módulo de comando y el módulo lunar en todas las misiones Apollo, desde el Apollo 1 hasta el Apollo 17, y después el Skylab
- Acuñó el término “ingeniería de software” (software engineering) a mediados de los años 1960, para argumentar que el software merecía el mismo rigor metodológico que las demás ramas de la ingeniería
- Su software salvó el Apollo 11: el sistema de prioridades de tareas que diseñó permitió que la computadora descartara trabajo no crítico durante el alunizaje y mantuviera activos los sistemas esenciales, a pesar de cinco alarmas de error consecutivas
- Recibió la Medalla Presidencial de la Libertad en 2016 de manos del presidente Barack Obama — el máximo honor civil en Estados Unidos — y en 2003 la NASA le otorgó el NASA Exceptional Space Act Award, el más alto de su historia para un individuo ($37,200 dólares)
- Fundó dos empresas de software: Higher Order Software en 1976 y Hamilton Technologies en 1986, donde sigue siendo CEO y desarrolla el Universal Systems Language (USL)
Visita Geeks famosos en GeekShop para conocer más perfiles de las personas que construyeron el mundo digital.
Orígenes y el camino a MIT
Margaret Elaine Heafield nació el 17 de agosto de 1936 en Paoli, Indiana, una pequeña ciudad del centro-sur del estado. Creció en una familia donde la educación era prioridad: su padre, Kenneth Heafield, era poeta y filósofo; su madre, Ruth Esther, le inculcó el gusto por las matemáticas desde temprana edad.
Estudió un año en la Universidad de Michigan antes de transferirse al Earlham College, en Richmond, Indiana, donde obtuvo en 1958 una licenciatura en matemáticas con mención en filosofía. En esa época, la intersección entre matemáticas y máquinas de cómputo era un territorio sin nombre claro: no existían las carreras de ciencias de la computación, y las pocas personas que programaban computadoras lo hacían sin un marco metodológico establecido.
MIT, AÑOS 1960
De los modelos atmosféricos al software espacial
Hamilton llegó al MIT en 1960, inicialmente para trabajar de manera temporal mientras su entonces esposo completaba estudios de posgrado en Harvard. Entró al laboratorio del meteorólogo Edward Norton Lorenz — el mismo que años después formularía la teoría del caos — y programó modelos climáticos en la LGP-30, una computadora primitiva del tamaño de un refrigerador.
Esa experiencia la enganchó. Cuando en 1964 el MIT Instrumentation Laboratory buscó programadores para el programa espacial Apollo de la NASA, Hamilton se unió al proyecto. No había formación específica para lo que el Apollo requería — el software de vuelo para una nave espacial era algo que nunca se había hecho. Los ingenieros aeroespaciales diseñaban hardware; el software lo tenían que construir desde cero, sin precedentes, sin metodología, sin manuales.
Eso no era una desventaja para Hamilton. Era exactamente el tipo de problema que la atraía.
Sus aportes: código que no podía fallar
La computadora de guía del Apollo — la AGC, Apollo Guidance Computer — era el cerebro de la nave. Con apenas 4 kilobytes de RAM y 72 kilobytes de memoria de solo lectura, tenía que controlar la navegación, el aterrizaje, el despegue del módulo lunar y decenas de sistemas críticos en tiempo real. El margen para el error era cero: no había oportunidad de actualizar el software desde tierra, ni de reiniciar la máquina si algo fallaba durante una maniobra de aterrizaje.
1965–1969
El sistema de prioridades que salvó el Apollo 11
El aporte más crítico de Hamilton fue diseñar la arquitectura de software de la AGC como un sistema de prioridades en tiempo real. El principio era simple pero revolucionario: clasificar cada tarea por su importancia y permitir que las tareas de mayor prioridad interrumpieran y descartaran las de menor prioridad cuando los recursos de la computadora se agotaban. En ingeniería de software, ese mecanismo se llama un planificador de prioridades con adelantamiento (preemptive priority scheduler).
El origen de esa decisión de diseño tiene una historia documentada: la hija de Hamilton, Lauren, visitó el laboratorio y jugó con el simulador de la AGC. Al presionar teclas al azar, lanzó inadvertidamente el programa de pre-lanzamiento durante una simulación de vuelo y la computadora se confundió. Hamilton quiso agregar código de protección para ese tipo de error; sus superiores argumentaron que los astronautas nunca cometerían ese error. No convenció a sus superiores en ese momento — pero el incidente reforzó su convicción de que el software tenía que anticipar y manejar condiciones inesperadas de manera proactiva, no confiar en que los operadores humanos nunca se equivocaran.
La validación llegó el 20 de julio de 1969. Durante el descenso del Apollo 11 hacia la Luna, la computadora disparó la alarma 1202 — y después la 1201, y otras variantes, cinco veces en cuatro minutos. El diagnóstico: la AGC estaba sobrecargada de datos de un radar de encuentro que había quedado activo por error, generando trabajo computacional innecesario. El software de Hamilton reconoció la situación, descartó las tareas de baja prioridad y mantuvo activos los sistemas de guía y aterrizaje. Mission Control, que conocía el diseño del sistema, autorizó continuar el descenso. El Eagle aterrizó.
Hamilton lo describió después en estos términos: si la computadora no hubiera reconocido el problema y tomado acción de recuperación, habría sido muy difícil que el Apollo 11 tuviera un alunizaje exitoso.
Cronología: de Paoli, Indiana a la Casa Blanca
| Año | Hito |
|---|---|
| 1936 | Nace el 17 de agosto en Paoli, Indiana |
| 1958 | Se gradúa en matemáticas con mención en filosofía en Earlham College |
| 1960 | Ingresa al MIT; trabaja con Edward Lorenz en modelos climáticos |
| 1964 | Se une al MIT Instrumentation Laboratory para el programa Apollo de la NASA |
| ~1965 | Acuña el término “ingeniería de software” para describir su disciplina |
| 1969 | Su software de prioridades salva el alunizaje del Apollo 11 el 20 de julio |
| 1971 | Dirige el desarrollo del software de vuelo para el Skylab |
| 1976 | Cofunda Higher Order Software con Saydean Zeldin en Cambridge, Massachusetts |
| 1986 | Funda Hamilton Technologies, Inc., también en Cambridge |
| 2003 | Recibe el NASA Exceptional Space Act Award — el mayor monto otorgado a un individuo en la historia de la NASA |
| 2016 | Recibe la Medalla Presidencial de la Libertad de manos del presidente Barack Obama |
| 2026 | Sigue activa a los 89 años como CEO de Hamilton Technologies |
El software merece el mismo rigor, las mismas metodologías y los mismos estándares de ingeniería que el hardware. Lo llamé ingeniería de software para que tomara ese lugar.
Esta postura — que el software no era magia ni artesanía informal sino una disciplina de ingeniería con sus propias reglas — era radical en los años 1960. Los ingenieros aeroespaciales diseñaban el hardware con procesos formales, documentación exhaustiva, pruebas sistemáticas y revisiones de diseño. El software se escribía como si fuera un conjunto de notas matemáticas que alguien actualizaba cuando algo fallaba. Hamilton argumentó que eso era inaceptable en un contexto donde un error de software podía matar a tres astronautas a 400,000 kilómetros de distancia.
Mitos y realidad
La historia de Margaret Hamilton ha sido contada en la última década con un entusiasmo que a veces simplifica lo que realmente ocurrió. Vale la pena mirar de cerca.
Si te interesa la historia de otras pioneras que definieron la computación moderna, visita también Grace Hopper: la almirante que inventó el compilador y Ada Lovelace: la primera programadora de la historia.
FAQ
¿Margaret Hamilton sigue viva?
Sí. Hamilton nació el 17 de agosto de 1936 y sigue viva a los 89 años. Continúa activa como CEO de Hamilton Technologies, Inc., la empresa que fundó en 1986 en Cambridge, Massachusetts. Participa en conferencias de ingeniería de software y sigue siendo una figura activa en la industria.
¿Qué fue exactamente la alarma 1202 del Apollo 11?
La alarma 1202 indicaba que la computadora de guía del módulo lunar estaba sobrecargada y no podía completar todas las tareas pendientes en el tiempo disponible. La causa fue que el radar de encuentro — usado para acoplarse con el módulo de comando en órbita — había quedado activo durante el descenso, enviando a la computadora datos que no necesitaba en ese momento. El software de Hamilton respondió exactamente como fue diseñado: reconoció el desbordamiento, descartó las tareas de baja prioridad y mantuvo activos los sistemas de guía y aterrizaje. Mission Control, al comprender que el sistema estaba funcionando correctamente, autorizó continuar el descenso. La alarma se activó cinco veces en cuatro minutos. El Eagle aterrizó sin problemas.
¿Recibió Margaret Hamilton el Premio Turing?
No. El Premio Turing de la ACM — el equivalente del Nobel en ciencias de la computación — no ha sido otorgado a Hamilton. Sí recibió el NASA Exceptional Space Act Award en 2003 (el mayor que la NASA ha dado a un individuo) y la Medalla Presidencial de la Libertad en 2016, el máximo honor civil de Estados Unidos, otorgado por el presidente Barack Obama.
¿Qué significa exactamente “ingeniería de software”?
El término que Hamilton acuñó en los años 1960 describe la aplicación de principios de ingeniería al desarrollo de software: diseño sistemático, documentación formal, pruebas rigurosas, gestión de errores anticipada, revisiones de diseño antes de la implementación. En ese contexto histórico, era una propuesta radical: los ingenieros de hardware pensaban que el software era trabajo de matemáticos que no necesitaba el mismo rigor formal. Hamilton argumentó que cuando el software controla una nave espacial con tres personas a bordo, cualquier diferencia entre “matemática informal” e “ingeniería formal” es la diferencia entre la vida y la muerte. El término se adoptó ampliamente en la industria en los años siguientes, y hoy “ingeniería de software” o “ingeniería en sistemas computacionales” es la denominación estándar de la disciplina en universidades de todo el mundo.
¿Cómo se compara el software del Apollo con lo que usamos hoy?
La computadora de guía del Apollo (AGC) tenía 4 kilobytes de RAM y 72 kilobytes de memoria de solo lectura — menos capacidad que un archivo de texto moderno. Sin embargo, el software que Hamilton y su equipo escribieron para esa máquina resolvió problemas que la ingeniería de software sigue estudiando hoy: cómo gestionar recursos limitados en tiempo real, cómo diseñar sistemas que se recuperen de errores inesperados sin intervención humana, cómo garantizar que un sistema de software crítico funcione correctamente bajo condiciones que no fueron exactamente anticipadas. Las restricciones extremas de hardware obligaron a soluciones de software que eran, en muchos sentidos, más elegantes y robustas que las que se escriben hoy para sistemas con millones de veces más recursos.
Fuentes
Los datos biográficos de esta guía se apoyan en fuentes autoritativas:
- Margaret Hamilton — Encyclopædia Britannica (ingeniera de software del programa Apollo)