At roughly 4pm on July 20, 1969, mankind was just minutes away from landing on the surface of the moon. But before the astronauts began their final descent, an emergency alarm lit up. Something was overloading the computer, and threatened to abort the landing.
Aproximadamente a las 16:00 h del 20 de julio de 1969, la humanidad estaba a pocos minutos de aterrizar en la superficie de la Luna. Pero antes de que los astronautas comenzaran su descenso final, se encendió una alarma de emergencia. Algo estaba sobrecargando la computadora y amenazaba con impedir el aterrizaje. En la Tierra, Margaret Hamilton contuvo la respiración.
Back on Earth, Margaret Hamilton held her breath. She'd led the team developing the pioneering in-flight software, so she knew this mission had no room for error. But the nature of this last-second emergency would soon prove her software was working exactly as planned.
Ella había liderado al equipo que desarrolló el software de vuelo pionero, así que sabía que en esta misión no había margen de error. Pero la naturaleza de esta emergencia de último segundo pronto demostraría que su software estaba funcionando exactamente cómo se había planeado.
Born 33 years earlier in Paoli, Indiana, Hamilton had always been inquisitive. In college, she studied mathematics and philosophy, before taking a research position at the Massachusetts Institute of Technology to pay for grad school. Here, she encountered her first computer while developing software to support research into the new field of chaos theory.
Nacida 33 años antes en Paoli, Indiana, Hamilton siempre había sido curiosa. En la facultad, estudió matemáticas y filosofía antes de tomar un puesto de investigación en el Instituto de Tecnología de Massachusetts para pagar su posgrado. Aquí se encontró con su primera computadora mientras desarrollaba software
Next at MIT's Lincoln Laboratory,
para respaldar las investigaciones en el nuevo campo de la teoría del caos.
Hamilton developed software for America’s first air defense system to search for enemy aircraft. But when she heard that renowned engineer Charles Draper was looking for help sending mankind to the moon, she immediately joined his team.
Luego, en el Laboratorio Lincoln del MIT, Hamilton desarrolló software para el primer sistema de defensa antiaérea de EE. UU. de detección de aeronaves enemigas. Pero cuando escuchó que el famoso ingeniero Charles Draper estaba buscando ayuda para enviar a la humanidad a la Luna, inmediatamente se unió a su equipo.
NASA looked to Draper and his group of over 400 engineers to invent the first compact digital flight computer, the Apollo Guidance Computer. Using input from astronauts, this device would be responsible for guiding, navigating and controlling the spacecraft. At a time when unreliable computers filled entire rooms, the AGC needed to operate without any errors, and fit in one cubic foot of space.
NASA recurrió a Draper y su equipo de más de 400 ingenieros para inventar la primera computadora digital de vuelo compacta, la Computadora de Navegación del Apolo (AGC). Usando entradas de astronautas, este dispositivo sería responsable de guiar, navegar y controlar la nave espacial. En una época en la que las computadoras poco fiables llenaban habitaciones enteras, la AGC necesitaba operar sin ningún error y entrar en un espacio equivalente a un cubo de 30 cm de lado.
Draper divided the lab into two teams, one for designing hardware and one for developing software. Hamilton led the team that built the on-board flight software for both the Command and Lunar Modules. This work, for which she coined the term “software engineering," was incredibly high stakes. Human lives were on the line, so every program had to be perfect. Margaret’s software needed to quickly detect unexpected errors and recover from them in real time.
Draper dividió al laboratorio en dos equipos: uno para diseñar el hardware y otro para desarrollar el software. Hamilton lideró el equipo que construyó el software de vuelo de a bordo tanto para el Módulo Lunar como para el de Mando. Este trabajo, para el cual acuñó el término "ingeniería de software", era de crucial importancia. Había vidas humanas en riesgo, así que cada programa tenía que ser perfecto. El software de Margaret tenía que poder detectar errores inesperados rápidamente y recuperarse de ellos en tiempo real.
But this kind of adaptable program was difficult to build, since early software could only process jobs in a predetermined order. To solve this problem, Margaret designed her program to be “asynchronous,” meaning the software's more important jobs would interrupt less important ones. Her team assigned every task a unique priority to ensure that each job occurred in the correct order and at the right time— regardless of any surprises.
Pero un programa así de versátil era difícil de construir, ya que el software antiguo solo podía procesar trabajos en un orden predeterminado. Para resolver este problema, Margaret diseñó su programa para que fuera "asincrónico", lo que significa que los trabajos más importantes del software interrumpirían los menos importantes. Su equipo asignó a cada tarea una prioridad única para asegurarse de que cada trabajo ocurriera en el orden correcto y en el momento adecuado, incluso si sucedía algo inesperado.
After this breakthrough, Margaret realized her software could help the astronauts work in an asynchronous environment as well. She designed Priority Displays that would interrupt astronaut’s regularly scheduled tasks to warn them of emergencies. The astronaut could then communicate with Mission Control to determine the best path forward. This marked the first time flight software communicated directly— and asynchronously— with a pilot.
Tras este avance, Margaret se dio cuenta de que su software también podría ayudar a los astronautas a trabajar en un ambiente asincrónico. Diseñó Avisos Prioritarios que interrumpirían las tareas programadas del astronauta para advertirle en caso de emergencia. Luego el astronauta se podría comunicar con el centro de control para determinar la mejor manera de proceder. Esta fue la primera vez que un software de vuelo se comunicó directa y asincrónicamente con un piloto.
It was these fail safes that triggered the alarms just before the lunar landing. Buzz Aldrin quickly realized his mistake— he’d inadvertently flipped the rendezvous radar switch. This radar would be essential on their journey home, but here it was using up vital computational resources. Fortunately, the Apollo Guidance Computer was well equipped to manage this. During the overload, the software restart programs allowed only the highest priority jobs to be processed— including the programs necessary for landing. The Priority Displays gave the astronauts a choice— to land or not to land. With minutes to spare, Mission Control gave the order.
Estos mecanismos de seguridad activaron las alarmas antes del alunizaje. Buzz Aldrin se dio cuenta de su error rápidamente: sin querer, había accionado el interruptor del radar de encuentro. Este radar resultaría esencial para su viaje de regreso, pero ahora estaba consumiendo recursos computacionales vitales. Por suerte, la Computadora de Navegación estaba preparada para resolver esto. Durante la sobrecarga, los programas de reinicio del software permitieron procesar solo los trabajos de mayor prioridad, incluyendo los programas necesarios para aterrizar. Los Avisos Prioritarios dieron una opción a los astronautas: aterrizar o no aterrizar. Contando con unos pocos minutos, el centro de control dio la orden.
The Apollo 11 landing was about the astronauts, Mission Control, software and hardware all working together as an integrated system of systems. Hamilton’s contributions were essential to the work of engineers and scientists inspired by President John F. Kennedy’s goal to reach the Moon. And her life-saving work went far beyond Apollo 11— no bugs were ever found in the in-flight software for any crewed Apollo missions.
En el alunizaje del Apolo 11, los astronautas, el centro de control, el software y el hardware trabajaron juntos como un sistema integrado. Las contribuciones de Hamilton fueron cruciales para ingenieros y científicos inspirados por el objetivo del presidente John F. Kennedy de llegar a la Luna. Y su trabajo fue más allá del Apolo 11: jamás se encontraron errores en el software de vuelo
After her work on Apollo, Hamilton founded a company that uses its unique universal systems language to create breakthroughs for systems and software. In 2003, NASA honored her achievements with the largest financial award they’d ever given to an individual. And 47 years after her software first guided astronauts to the moon, Hamilton was awarded the Presidential Medal of Freedom for changing the way we think about technology.
para las misiones Apolo tripuladas. Después de su trabajo en Apolo, Hamilton fundó una empresa que usa su lenguaje exclusivo de sistemas universales para crear avances en sistemas y software. En 2003, NASA honró sus logros con el mayor premio financiero que le habían dado a una persona. Y 47 años después de que su software guiara astronautas a la Luna por primera vez, Hamilton recibió la Medalla Presidencial de la Libertad por cambiar la forma en que pensamos acerca de la tecnología.