Margaret Elaine Hamilton (de soltera Heafield, nacida el 17 de agosto de 1936) es una distinguida científica informática estadounidense. Se desempeñó como directora de la División de Ingeniería de Software en el Laboratorio de Instrumentación del MIT, donde su liderazgo fue fundamental en el desarrollo del software de vuelo a bordo para la Computadora de Orientación Apollo de la NASA, crucial para el programa Apollo. Posteriormente, fundó dos empresas de software: Higher Order Software en 1976 y Hamilton Technologies en 1986, ambas ubicadas en Cambridge, Massachusetts.
Margaret Elaine Hamilton (de soltera Heafield; nacida el 17 de agosto de 1936) es una científica informática estadounidense. Dirigió la División de Ingeniería de Software en el Laboratorio de Instrumentación del MIT, donde dirigió el desarrollo del software de vuelo a bordo para la Computadora de Orientación Apollo de la NASA para el programa Apollo. Posteriormente fundó dos empresas de software, Higher Order Software en 1976 y Hamilton Technologies en 1986, ambas en Cambridge, Massachusetts.
El extenso trabajo de Hamilton incluye más de 130 artículos, actas e informes publicados, junto con contribuciones a aproximadamente sesenta proyectos y seis programas importantes. Se le atribuye haber acuñado el término "ingeniería de software", articulando su propósito de la siguiente manera: "Comencé a usar el término 'ingeniería de software' para distinguirlo del hardware y otros tipos de ingeniería, pero trato cada tipo de ingeniería como parte del proceso general de ingeniería de sistemas".
El 22 de noviembre de 2016, el presidente Barack Obama confirió la Medalla Presidencial de la Libertad a Hamilton, reconociendo sus contribuciones fundamentales al desarrollo de software de vuelo a bordo para las misiones Apolo a la Luna de la NASA.
Vida temprana y antecedentes educativos
Margaret Elaine Heafield nació el 17 de agosto de 1936 en Paoli, Indiana, hija de Kenneth Heafield y Ruth Esther Heafield (de soltera Partington). Posteriormente, su familia se mudó a Michigan, donde completó su educación secundaria en Hancock High School en 1954.
Comenzó sus estudios de matemáticas en la Universidad de Michigan en 1955, transfiriéndose posteriormente al Earlham College, institución a la que anteriormente asistía su madre. En 1958, obtuvo una licenciatura en matemáticas, complementada con una especialización en filosofía. Ella le da crédito a Florence Long, quien presidió el departamento de matemáticas en Earlham, por fomentar su aspiración de dedicarse a las matemáticas abstractas y una carrera como profesora de matemáticas.
Atribuye su decisión de incorporar una especialización en filosofía en sus actividades académicas a la influencia de su padre, un poeta, y su abuelo, un director.
Carrera profesional
Inicialmente, mientras estaba en Boston, Hamilton había planeado realizar estudios de posgrado en matemáticas abstractas en la Universidad Brandeis. Sin embargo, a mediados de 1959, Hamilton comenzó a trabajar con Edward Norton Lorenz en el departamento de meteorología del Instituto Tecnológico de Massachusetts (MIT). Sus responsabilidades incluían desarrollar software para la predicción del tiempo, utilizando las computadoras LGP-30 y PDP-1 en el Proyecto MAC de Marvin Minsky. Sus contribuciones fueron parte integral de las publicaciones posteriores de Lorenz sobre la teoría del caos, un hecho reconocido por el propio Lorenz. Durante esa época, la informática y la ingeniería de software aún no se habían establecido formalmente como disciplinas académicas; en consecuencia, los programadores normalmente adquirieron sus habilidades a través de la experiencia práctica en el trabajo. En el verano de 1961, pasó a un proyecto diferente y posteriormente contrató y capacitó a Ellen Fetter como su sucesora.
El Proyecto SAGE
Entre 1961 y 1963, Hamilton participó en el proyecto Semi-Automatic Ground Environment (SAGE) en el Laboratorio Lincoln del MIT, y fue uno de los programadores responsables del desarrollo de software para el prototipo de computadora AN/FSQ-7 (el XD-1), que la Fuerza Aérea de EE. UU. empleó para detectar posibles aeronaves hostiles. Además, desarrolló software para una iniciativa de seguimiento por satélite en los Laboratorios de Investigación de Cambridge de la Fuerza Aérea. El Proyecto SAGE se originó como una extensión del Proyecto Whirlwind, una iniciativa del MIT destinada a crear un sistema informático capaz de predecir patrones climáticos y monitorear sus trayectorias mediante simulación. Posteriormente, SAGE se adaptó para aplicaciones militares en defensa aérea antiaérea. Hamilton relató:
Lo que solían hacer cuando llegaste a esta organización como principiante, era asignarte este programa que nadie fue capaz de descifrar o ejecutar. Cuando era principiante también me lo regalaron. Y lo que pasó fue que era una programación complicada, y la persona que la escribió se deleitó con el hecho de que todos sus comentarios estaban en griego y latín. Entonces me asignaron este programa y realmente lo hice funcionar. Incluso imprimió sus respuestas en latín y griego. Fui el primero en hacerlo funcionar.
Sus esfuerzos exitosos en este proyecto la posicionaron como una fuerte candidata para el puesto de desarrolladora principal del software de vuelo Apollo en la NASA.
Laboratorio de instrumentación del MIT y desarrollo del ordenador de orientación Apollo
En 1965, Margaret Hamilton tuvo conocimiento del proyecto Apolo y buscó participar, atraída por la perspectiva "muy emocionante" de una iniciativa de exploración lunar. Posteriormente se unió al Laboratorio de Instrumentación del MIT, entidad responsable del desarrollo de la Computadora de Orientación Apollo para el programa de exploración lunar Apollo. Hamilton se distinguió como la programadora inaugural contratada para el proyecto Apollo en el MIT y la primera mujer programadora dentro del esfuerzo, ascendiendo finalmente al puesto de Directora de la División de Ingeniería de Software. Sus responsabilidades incluían liderar el equipo que desarrolló y probó rigurosamente todo el software de vuelo a bordo para el módulo lunar y de comando de la nave espacial Apollo, así como para la posterior estación espacial Skylab. Un segmento distinto de su equipo se centró en diseñar e implementar el software del sistema, que incluía mecanismos críticos de detección y recuperación de errores como reinicios y rutinas de interfaz de pantalla (también conocidas como pantallas prioritarias), ambos concebidos y desarrollados por Hamilton. Adquirió experiencia práctica durante una era en la que los planes de estudios formales de ciencias de la computación eran escasos y los cursos de ingeniería de software eran inexistentes.
La amplia experiencia de Hamilton abarcaba un amplio espectro de disciplinas, incluido el diseño de sistemas y desarrollo de software, modelado empresarial y de procesos, paradigmas de desarrollo, lenguajes formales de modelado de sistemas, objetos orientados a sistemas para modelado y desarrollo de sistemas, entornos de ciclo de vida automatizados, metodologías para optimizar la confiabilidad y reutilización del software, análisis de dominio, garantía de corrección a través de propiedades de lenguaje integradas y arquitectura abierta. técnicas para sistemas robustos, automatización integral del ciclo de vida, garantía de calidad, integración perfecta, técnicas avanzadas de detección y recuperación de errores, sistemas de interfaz hombre-máquina, sistemas operativos, protocolos de prueba de extremo a extremo y estrategias sofisticadas de gestión del ciclo de vida. Estas técnicas integradas fueron diseñadas para mejorar la confiabilidad del código al facilitar la identificación y rectificación temprana de errores dentro del proceso de desarrollo de software.
El alunizaje del Apolo 11
Durante una fase crítica de la misión Apolo 11, la computadora de guía Apollo, junto con su software de vuelo a bordo, impidieron con éxito la interrupción del aterrizaje lunar. Aproximadamente tres minutos antes del aterrizaje del módulo de aterrizaje lunar, se activaron múltiples alarmas informáticas. El ingeniero de software Robert Wills indicó que el astronauta Buzz Aldrin inició una solicitud para que la computadora mostrara la altitud y otros datos pertinentes en su pantalla. Aunque el sistema fue diseñado para acomodar siete programas simultáneos, la aportación de Aldrin constituyó un octavo. Esta acción, que Aldrin había practicado frecuentemente en simulaciones, resultó en una secuencia de códigos de error imprevistos durante el descenso real. El software de vuelo a bordo interceptó estas alarmas, presentando "pantallas que nunca se suponía que sucederían" que interrumpían a los astronautas con notificaciones de alarma prioritarias. Hamilton había anticipado y preparado precisamente para este escenario con años de antelación.
Hamilton recordaba con frecuencia un mecanismo de seguridad adicional. Su innovador sistema de "visualización de prioridad" introdujo un riesgo consecuente: la posibilidad de desincronización entre el astronauta y la computadora durante períodos operativos críticos. Cuando se activaron las alarmas y las pantallas de prioridad reemplazaron a las estándar, la transición subyacente a nuevos programas se produjo a un ritmo descrito como "un paso más lento" que los sistemas contemporáneos.
Hamilton había analizado exhaustivamente este problema potencial. Su análisis indicó que si un astronauta, como Aldrin, interactuara con una pantalla de prioridad demasiado rápido, el sistema aún podría registrar una respuesta "normal". La solución que ideó fue una instrucción de procedimiento: cuando aparece una pantalla de prioridad, el astronauta debe contar primero hasta cinco.
Según ciertos informes, las alarmas fueron precipitadas por los astronautas que sin darse cuenta dejaron activado el interruptor del radar de encuentro; sin embargo, Robert Wills, del Museo Nacional de Computación, cuestiona esta afirmación sobre la activación involuntaria del radar. La computadora experimentó una sobrecarga de interrupciones, que resultó de un suministro de energía en fases incorrectas al radar de encuentro del módulo de aterrizaje. Las alarmas del programa señalaron "desbordamientos ejecutivos", indicando que la computadora de guía no pudo ejecutar todas las tareas asignadas en tiempo real y en consecuencia tuvo que aplazar algunas operaciones. El equipo de Hamilton aprovechó el ejecutivo asíncrono, diseñado originalmente por J. Halcombe Laning, para desarrollar el software de vuelo asíncrono.
El software de vuelo incorporó técnicas avanzadas de detección y recuperación de errores, como un reinicio de "eliminar y recalcular" en todo el sistema desde un "lugar seguro" y funcionalidades de instantánea/reversión. Estas capacidades facilitaron el desarrollo de rutinas de interfaz de visualización (también conocidas como pantallas de prioridad), que, combinadas con funciones de hombre en el circuito, podrían interrumpir las pantallas de misión estándar de los astronautas para presentar alarmas de emergencia críticas. Esta funcionalidad se basaba en asignar una prioridad única a cada proceso de software, asegurando una ejecución temporal y secuencial precisa de todos los eventos.
El sistema de alarma prioritaria de Hamilton fue diseñado para anular las pantallas estándar de los astronautas durante emergencias, presentando información crítica que permitía una decisión de "ir/no ir" con respecto al aterrizaje. Durante un incidente crítico, Jack Garman, ingeniero informático de la NASA en el control de la misión, interpretó con precisión los mensajes de error transmitidos por las pantallas de prioridad, autorizando la continuación de la misión con la exclamación: "¡Vamos, vamos!". Paul Curto, un tecnólogo senior que posteriormente nominó a Hamilton para un premio de la Ley Espacial de la NASA, elogió sus contribuciones como "la base para el diseño de software ultraconfiable".
Hamilton posteriormente documentó su perspectiva sobre el incidente:
El software del sistema fue diseñado para detectar una condición de sobrecarga, lo que indica una solicitud de más tareas de las que podía ejecutar de manera óptima. Al ser detectado, activó una alarma que le indicó al astronauta: "Actualmente estoy sobrecargado de tareas y priorizaré solo las más críticas", es decir, las esenciales para el aterrizaje. Más allá del mero reconocimiento de errores, el software incorporó un conjunto completo de programas de recuperación. En este caso específico, la respuesta del software implicó desactivar tareas de menor prioridad y restablecer funciones de mayor prioridad. Si el sistema no hubiera podido identificar este problema e iniciar la recuperación, el exitoso alunizaje del Apolo 11 se habría visto seriamente comprometido.
Empresas emprendedoras
En 1976, Hamilton cofundó Higher Order Software (HOS) con Saydean Zeldin, con el objetivo de avanzar en conceptos de prevención de errores y tolerancia a fallos derivados de su trabajo en el programa Apollo en el MIT. Posteriormente desarrollaron USE.IT, un producto basado en la metodología HOS formulada en el MIT. Este producto encontró una aplicación exitosa en varias iniciativas gubernamentales, en particular un proyecto para formalizar e implementar C-IDEF, una iteración automatizada de IDEF, un lenguaje de modelado originado por la Fuerza Aérea de EE. UU. dentro del proyecto de Fabricación Integrada Asistida por Computadora (ICAM). En 1980, el informático británico-israelí David Harel propuso un lenguaje de programación estructurado derivado de HOS, enmarcado en la perspectiva de los subobjetivos AND/OR. Además, otros investigadores han empleado HOS para formalizar la semántica de los cuantificadores lingüísticos y establecer diseños rigurosos para sistemas integrados confiables en tiempo real.
Hamilton fue directora ejecutiva de HOS hasta 1984, y dejó la empresa en 1985. En marzo de 1986, fundó Hamilton Technologies, Inc. en Cambridge, Massachusetts. Esta nueva entidad se centró en el Lenguaje de Sistemas Universal (USL) y el entorno automatizado que lo acompaña, el 001 Tool Suite, ambos basados en su paradigma de "desarrollo antes del hecho" para el diseño de sistemas integrales y la ingeniería de software.
Impacto duradero
Hamilton es ampliamente reconocido por acuñar el término "ingeniería de software". Posteriormente explicó la génesis de esta nomenclatura:
Al principio, el término no era familiar en nuestro ámbito profesional. Durante mucho tiempo siguió siendo objeto de bromas, y mis colegas a menudo se burlaban de mí por mis conceptos poco convencionales. Se produjo un momento crucial cuando un experto en hardware muy respetado afirmó públicamente en una reunión que el desarrollo de software merecía reconocimiento como disciplina de ingeniería, análoga a la ingeniería de hardware. Esta aceptación surgió no sólo de la adopción de la nueva terminología, sino del reconocimiento colectivo de que nuestro trabajo se había establecido como un campo de ingeniería legítimo.
Durante las misiones Apolo iniciales, cuando Hamilton introdujo el término "ingeniería de software", la disciplina del desarrollo de software carecía del reconocimiento y la posición científica otorgada a otros campos de la ingeniería. El objetivo de Hamilton era establecer el desarrollo de software como una disciplina de ingeniería legítima. Posteriormente, la "ingeniería de software" alcanzó un respeto comparable al de otras disciplinas técnicas. La edición de septiembre/octubre de 2018 de IEEE Software conmemoró el 50.º aniversario de la ingeniería de software. Hamilton analizó la profunda influencia de los "Errores" en sus esfuerzos de ingeniería de software, particularmente cómo su lenguaje desarrollado, USL, podría mitigar la mayoría de los "Errores" del sistema. El diseño de USL tenía como objetivo evitar la mayoría de los errores del desarrollo inicial del sistema, reduciendo así la dependencia de pruebas exhaustivas posteriores al desarrollo. Su experiencia durante la misión Apolo, que la llevó a formular una teoría matemática para sistemas y software, influyó en la creación de USL. Esta metodología ha mantenido una influencia significativa dentro del campo de la ingeniería de software. Robert McMillan, que escribe para Wired, destacó su contribución en el MIT y afirmó que "ayudó en la creación de los principios básicos de la programación informática mientras trabajaba con sus colegas escribiendo código para la primera computadora portátil del mundo". Las innovaciones de Hamilton van más allá de su papel fundamental en las misiones lunares. Karen Tegan Padir de Wired afirmó además que Hamilton, junto con Grace Hopper, la inventora de COBOL y otra pionera de la programación, merece un reconocimiento sustancial por facilitar la entrada y el éxito de las mujeres en campos STEM como el software.
Conmemoraciones
En 2017, se lanzó un set LEGO "Mujeres de la NASA", que incluía minifiguras de Hamilton, las astronautas Mae Jemison y Sally Ride, y Nancy Grace Roman, la jefa inaugural de Astronomía de la NASA. Maia Weinstock propuso originalmente el set para honrar las contribuciones de estas mujeres a la historia de la NASA. El segmento de Hamilton dentro del set recrea notablemente su icónica fotografía de 1969, mostrándola junto a una importante pila de sus listados de software.
En 2019, para conmemorar el 50.º aniversario del aterrizaje del Apolo, Google honró a Hamilton configurando los espejos de la instalación de energía solar Ivanpah para proyectar una imagen de ella y el Apolo 11 a la luz de la luna.
El personaje de Margo Madison, una ingeniera ficticia de la NASA que aparece en el filme alternativo. serie de historia Para toda la humanidad, se inspira en Hamilton.
Reconocimientos
- En 1986, la Asociación de Mujeres en Computación otorgó el Premio Augusta Ada Lovelace a Hamilton.
- Recibió el Premio de la Ley del Espacio Excepcional de la NASA en 2003, en reconocimiento a sus contribuciones científicas y técnicas. Este premio, por un total de 37.200 dólares, representó la suma monetaria más sustancial jamás otorgada a un individuo en la historia de la NASA.
- Earlham College le otorgó el premio Outstanding Alumni Award en 2009.
- En 2016, Barack Obama le concedió la Medalla Presidencial de la Libertad, que constituye el honor civil más importante en los Estados Unidos.
- El 28 de abril de 2017, fue honrada con el premio Computer History Museum Fellow Award, un galardón que reconoce a personas distinguidas cuyas contribuciones a la informática han impactado profundamente al mundo.
- La Universidad Politécnica de Cataluña le otorgó el título de doctora honoris causa en 2018.
- Recibió el premio Washington en 2019.
- Bard College le otorgó un doctorado honoris causa en 2019.
- Recibió el premio Intrepid Lifetime Achievement Award en 2019.
- En 2022, fue incluida en el Salón de la Fama de la Aviación Nacional, ubicado en Dayton, Ohio.
Publicaciones seleccionadas
- Hamilton, M.; Zeldin, S. (marzo de 1976). "Software de orden superior: una metodología para definir software". Transacciones IEEE sobre Ingeniería de Software. SE-2 (1): 9–32. doi:10.1109/TSE.1976.233798. S2CID 7799553.Hamilton, M.; Zeldin, S. (1 de enero de 1979). "La relación entre diseño y verificación". Revista de Sistemas y Software. §34§: 29–56. doi:10.1016/0164-1212(79)90004-9.Diseño Electrónico.
- Hamilton, M. (junio de 1994). "001: Un entorno de desarrollo de software e ingeniería de sistemas de ciclo de vida completo". (Artículo de portada). Suplemento editorial especial. 22ES-30ES. Diseño Electrónico.
- Hamilton, M.; Hackler, WR (2004). "Principios de la arquitectura de software común para la unidad de navegación guiada profundamente integrada (DI-GNU)". (Revisado el 29 de diciembre de 2004). DAAAE30-02-D-1020 y DAAB07-98-D-H502/0180, Picatinny Arsenal, Nueva Jersey, 2003–2004.
- Hamilton, M.; Hackler, WR (2007). "Un lenguaje de sistemas universal para la ingeniería de sistemas preventivos", Actas de la quinta conferencia anual sobre investigación en ingeniería de sistemas (CSER), Instituto de Tecnología Stevens, marzo de 2007, artículo n.° 36.
- Hamilton, Margaret H.; Hackler, William R. (2007). "Una semántica formal de sistemas universales para SysML". Simposio Internacional Incose. 17 (1). Wiley: 1333–1357. doi:10.1002/j.2334-5837.2007.tb02952.x. ISSN 2334-5837. S2CID 57214708.Hamilton, Margaret H.; Hackler, William R. (2008). "El lenguaje de sistemas universal: conocimientos del programa Apollo". Computadora. 41 (12). Instituto de Ingenieros Eléctricos y Electrónicos (IEEE): 34–43. doi:10.1109/mc.2008.541. ISSN 0018-9162.Hamilton, M. H. (septiembre de 2018). "Información derivada del análisis de errores". Software IEEE. 35 (5): 32–37. doi:10.1109/MS.2018.290110447. S2CID 52896962.Vida personal
Hamilton tiene una hermana, Kathryn Heafield.
Conoció a su primer marido, James Cox Hamilton, a mediados de la década de 1950 mientras cursaba su educación universitaria. Su matrimonio tuvo lugar el 15 de junio de 1958, tras su graduación en Earlham ese verano. Posteriormente, ocupó un breve puesto docente en matemáticas y francés en la escuela secundaria en una institución pública en Boston, Indiana. Más tarde, la pareja se mudó a Boston, Massachusetts, donde nació su hija, Lauren, el 10 de noviembre de 1959. Su divorcio finalizó en 1967 y Margaret se casó posteriormente con Dan Lickly dos años después.
- Lista de pioneros en informática
Referencias
Steafel, Eleanor (20 de julio de 2019). "Una mujer singular en medio de un entorno dominado por los hombres". La revista Telegraph. Londres: Daily Telegraph plc. págs. 56–59, 61. OCLC 69022829.
- Steafel, Eleanor (20 de julio de 2019). "Una mujer en una habitación llena de hombres". La revista Telegraph. Londres: Daily Telegraph plc. págs. 56–59, 61. OCLC 69022829.
- Hamilton Technologies, Inc.
- Margaret Hamilton Archivado el 5 de septiembre de 2017 en Wayback Machine Video producido por Makers: Women Who Make America
- Margaret Hamilton '58 - Recipiente de la Medalla Presidencial de la Libertad Archivado el 30 de julio de 2019 en Wayback Machine: perfil de Earlham College