Su código consiguió que los seres humanos lleguen a la Luna - e inventó el software en sí mismo
Wired
Margaret Hamilton en el Museo del MIT en Cambridge, MA
MARGARET HAMILTON NO debía inventar el concepto moderno de software y hombres terrestres en la luna. Era 1960, no un momento en que las mujeres eran alentadas a buscar trabajo técnico de alta potencia. Hamilton, una estudiante de 24 años con una licenciatura en matemáticas, había conseguido un trabajo como programadora en el MIT, y el plan era que ella apoyara a su esposo durante su periodo de tres años en Harvard Law. Después de eso, sería su turno-ella quería una licenciatura en matemáticas.
Pero el programa espacial Apollo apareció. Y Hamilton se quedó en el laboratorio para dirigir una hazaña épica de la ingeniería que ayudaría a cambiar el futuro de lo que era humano y digitalmente posible.
Como madre trabajadora en los años sesenta, Hamilton era inusual; Pero como un programador de la nave espacial, Hamilton era positivamente radical. Hamilton traería a su hija Lauren por el laboratorio los fines de semana y las noches. Mientras Lauren, de 4 años, dormía en el piso de la oficina con vistas al río Charles, su madre se lo programó, creando rutinas que en última instancia serían agregadas a la computadora del módulo de comando de Apolo.
"La gente solía decirme, '¿Cómo puedes dejar a tu hija? ¿Cómo puedes hacer esto? ", Recuerda Hamilton. Pero le encantaba la arcana novedad de su trabajo. Le gustaba la camaradería, las bebidas después del trabajo en el club de profesores del MIT; Las bromas del geek, como decir que ella "iba a la rama izquierda menos" alrededor del pasillo. Los forasteros no tenían ni idea. Pero en el laboratorio, ella dice: "Yo era uno de los
tipos".
Entonces, como ahora, "los chicos" dominaron la tecnología y la ingeniería. Al igual que los codificadores femeninos en la industria de la tecnología actual desafiada por la diversidad, Hamilton fue un atípico. Podría sorprender a los fabricantes de software de hoy que uno de los padres fundadores de su club de chicos era, de hecho, una madre - y eso debería hacerles una pausa al considerar por qué la desigualdad de género de la era de los Hombres Locos persiste hasta nuestros días.
A medida que la carrera de Hamilton se puso en marcha, el mundo del software estaba a punto de dar un salto gigantesco, gracias al programa Apollo lanzado por John F. Kennedy en 1961. En el MIT Instrumentation Lab donde trabajaba Hamilton, ella y sus colegas estaban inventando ideas centrales En la programación de computadoras mientras escribían el código para la primera computadora portátil del mundo. Se convirtió en una experta en programación de sistemas y ganó importantes argumentos técnicos. "Cuando entré por primera vez, nadie sabía lo que estábamos haciendo. Era como el salvaje oeste. No había ningún curso en él. No lo enseñaron ", dice Hamilton.
Esta era una década antes de que Microsoft y casi 50 años antes de que Marc Andreessen observara que el software es, de hecho, "comiendo el mundo." El mundo no pensó mucho en el software detrás en los días tempranos de Apolo. El documento original sobre los requisitos de ingeniería de la misión Apollo ni siquiera mencionó la palabra software, el profesor de aeronáutica del MIT, David Mindell, escribe en su libro Digital Apollo. "El software no estaba incluido en el calendario, y no estaba incluido en el presupuesto." No al principio, de todos modos.
Pero a medida que se desarrollaba el proyecto Apollo, la centralidad del software en el cumplimiento de la misión empezó a quedar clara. En 1965, Hamilton se hizo responsable del software de vuelo a bordo de las computadoras Apolo. Fue un momento emocionante, y los EE.UU. dependía del trabajo que estaba haciendo. Pero a veces la presión hacía que Hamilton se levantaba por la noche. Una vez, después de una fiesta nocturna, corrió de vuelta al laboratorio de computación para corregir un código que de repente se había dado cuenta de que tenía defectos. "Siempre estaba imaginando los titulares en los periódicos, y ellos señalarían de nuevo cómo sucedió, y me señalaría de nuevo".
A mediados de 1968, más de 400 personas estaban trabajando en el software de Apollo, porque el software era la forma en que Estados Unidos iba a ganar la carrera a la luna. Como resultó, por supuesto, el software iba a ayudar al mundo a hacer mucho más. Mientras Hamilton y sus colegas estaban programando la nave espacial Apollo, también estaban incubando lo que se convertiría en una industria de 400.000 millones de dólares.
Para Hamilton, la programación significaba perforar agujeros en las pilas de tarjetas de perforación, que se procesarían de la noche a la mañana en lotes en una gigantesca computadora central de Honeywell que simulaba el trabajo del Apollo Lander. "Tuvimos que simular todo antes de que volara", recuerda Hamilton. Una vez que el código era sólido, sería enviado a una instalación cercana de Raytheon, donde un grupo de mujeres, costureras expertas conocidas por el programa Apolo como las "Pequeñas Viejas Damas", cableaban hilos de cobre a través de anillos magnéticos (un alambre que pasaba por un núcleo Era un 1, un alambre que circulaba alrededor del núcleo era un 0). Olvídate de RAM o unidades de disco; En Apolo, la memoria estaba literalmente cableada y casi indestructible.
Los vuelos de Apolo llevaban dos máquinas casi idénticas: una usada en el módulo lunar -el Águila que aterrizó en la luna- y la otra para el módulo de mando que llevaba a los astronautas hacia y desde la Tierra. Estas computadoras Apollo de 70 libras eran computadoras portátiles, como ninguna otra. Concebido por ingenieros del MIT como Hal Laning y el jefe de Hamilton, Dick Batton, fue uno de los primeros ordenadores importantes en utilizar circuitos integrados en lugar de transistores. Como cuenta Mindell, fue el primer sistema computarizado de navegación a bordo diseñado para ser operado por humanos, pero con tecnología de piloto automático "fly-by-wire", un precursor de los sistemas de navegación computarizados que ahora son estándar en aviones de pasajeros.
El sistema almacenaba más de 12.000 "palabras" en su memoria permanente -las "cuerdas de cobre" hechas por los trabajadores de Raytheon- y tenía 1.024 palabras en su memoria temporal, borrable. "Fue la primera vez que una computadora importante había estado en una nave espacial y se le dio mucha responsabilidad por la misión", dice Don Eyles, quien trabajó en el código del módulo lunar mientras estaba en el IL del MIT. "Mostramos que eso podría hacerse. Lo hicimos en lo que hoy parece una cantidad increíblemente pequeña de memoria y una velocidad de computación muy lenta ". Sin ella, Neil Armstrong no habría llegado a la luna. Y sin el software escrito por Hamilton, Eyles, y el equipo de ingenieros del MIT, la computadora habría sido un fracaso.
Esto se hizo claro el 20 de julio de 1969, minutos antes de que Apolo 11 aterrizara en el Mar de la Tranquilidad. Debido a lo que el ingeniero de software Apollo Don Eyles ha denominado un "error de documentación", la computadora Apolo comenzó a escupir mensajes de error preocupantes durante esta fase crítica de la misión. Pero aquí es donde los argumentos técnicos ganados por Hamilton y otros salvaron el día. Los mensajes de error estaban apareciendo porque la computadora estaba siendo abrumada, encargada de hacer una serie de cálculos innecesarios cuando, de hecho, era más necesaria para aterrizar el módulo en la superficie de la luna. De vuelta en Houston, los ingenieros sabían que debido al procesamiento asíncrono único de Apolo, la computadora se centraría en la tarea a mano-aterrizar el Águila en el Mar de la Tranquilidad. Cuando el software se dio cuenta de que no tenía suficiente espacio para realizar todas las funciones que se suponía debía estar haciendo, pasó por su proceso de detección de errores y se centró en el trabajo de mayor prioridad, dice Hamilton.
"Eso nunca sucedería"
Un día, Lauren estaba jugando con la unidad de visualización y teclado del simulador del módulo de mando MIT, apodada DSKY (dis-key). Mientras jugaba con el teclado, apareció un mensaje de error. Lauren había estrellado el simulador lanzando de alguna manera un programa del prelaunch llamado P01 mientras que el simulador estaba en midflight. No había razón para que un astronauta hiciera esto, pero Hamilton, sin embargo, quería añadir código para evitar el accidente. Esa idea fue rechazada por la NASA. "Se nos había dicho muchas veces que los astronautas no cometieron ningún error", dice. "En lugar de eso, Hamilton creó una nota de programa -un complemento a la documentación del programa que estaría disponible para los ingenieros de la NASA y los astronautas:" No seleccione P01 durante el vuelo ", dijo. Hamilton quería agregar código de comprobación de errores al sistema Apollo para evitar que esto arruinara los sistemas. Pero eso le parecía excesivo a sus superiores. "Todo el mundo dijo: 'Eso nunca sucedería'", recuerda Hamilton.
Pero lo hizo. A la vuelta de la Navidad de 1968, cinco días después del histórico vuelo de Apolo 8, que llevó a los astronautas a la luna para la primera órbita tripulada, el astronauta Jim Lovell eligió inadvertidamente P01 durante el vuelo. Hamilton estaba en la sala de conferencias del segundo piso del Laboratorio de Instrumentación cuando llegó la llamada desde Houston. El lanzamiento del programa P01 había borrado todos los datos de navegación que Lovell había estado recopilando. Eso fue un problema. Sin esos datos, la computadora Apollo no sería capaz de averiguar cómo llegar a casa de los astronautas. Hamilton y los codificadores del MIT necesitaban llegar a una solución; Y necesitaba ser perfecto. Después de pasar nueve horas leyendo el listado de programas de 8 pulgadas de espesor en la mesa frente a ellos, tenían un plan. Houston cargaría nuevos datos de navegación. Todo iba a estar bien. Gracias a Hamilton y Lauren, los astronautas de Apolo llegaron a casa.
También gracias a Hamilton y el trabajo que llevó, las nociones de lo que la humanidad podía hacer, y ser, cambió no sólo más allá de la estratosfera sino también aquí en el suelo. La ingeniería de software, un concepto que Hamilton fue pionero, ha encontrado su camino desde el aterrizaje lunar a casi todos los esfuerzos humanos. Por los años 70, Hamilton había movido encendido de NASA y del programa de Apolo. A continuación, fundó y dirigió varias compañías de software. Hoy en día, su empresa, Hamilton Technologies, está a sólo unas cuadras del MIT, donde comenzó su carrera, un centro de la revolución del código que sigue mirando hacia las estrellas.