Cuando lo ordinario se convierte en extraordinario no es fruto de la casualidad, por el contrario, lo son del ingenio, la inteligencia, la intuición y la perseverancia de personas convencidas del propósito que están llamadas a desempeñar. Este es el caso de Margaret Hamilton, directora de la División de Ingeniería de Software del Laboratorio de Instrumentación del MIT que desarrolló una labor esencial en el desarrollo del software con el que operaba el Computador de Guiado del Apolo (AGC). Hasta ese momento el incipiente mundo de las Ciencias de la Computación, mediados de los años setenta, era un terreno tan inexplorado que ni siquiera había una clara distinción en las tareas relativas al desarrollo de hardware y software como disciplinas diferenciadas, algo más que evidente hoy en día.
Margaret ya cultivó desde la adolescencia su preferencia por las matemáticas y las ciencias en el instituto, licenciada posteriormente en matemáticas en la Universidad de Michigan rápidamente comenzó a familiarizarse con el mundo de la computación en proyectos gubernamentales de alto nivel como el SAGE, un proyecto destinado al rastreo de misiles soviéticos en el cual participó activamente sirviéndole como primera experiencia desarrollando software.
Sin embargo fue el desarrollo del Apollo Guidance Computer AGC (Computador de Navegación del Apolo), un componente esencial del programa Apolo en la década de los 60, el que proporcionó a Margaret Hamilton la oportunidad de poner en práctica todo su talento. Este módulo proporcionaba a la nave Apolo la capacidad de cálculo necesaria para controlar la orientación y la navegación tanto del módulo de mando como la del módulo lunar, de ahí su importancia vital para el propósito de alunizar exitosamente en el satélite terrestre. El AGC estaba compuesto por una interface llamada DSKY, una pieza de hardware verdaderamente increíble para la época tecnológicamente hablando, uno de los primeros computadores que estaba diseñado con circuitos integrados. El DSKY era el componente a través del cual los astronautas programaban las instrucciones que la nave espacial Apolo debía ejecutar, y aquí es donde Margaret Hamilton fue seleccionada para liderar el equipo de desarrollo del software que implementaría el DSKY. El código escrito por Margaret Hamilton poseía dos características que han pasado a ser un estandard en la industria de desarrollo del software: la modularidad y la resiliencia a errores. Hasta ese momento el desarrollo de software era un terreno desconocido, sin estándares ni patrones de diseño preestablecidos, de ahí la importancia de este nuevo modelo de programación. Margaret creó el USL (Universal Systems Language) a mediados de los años 80 anticipándose así a los posteriores paradigmas como el UML (1997) y SysML (2006). El USL era un lenguaje de especificación formal y matemático para la automatización de sistemas cuyo propósito era evitar errores antes de programar mediante la generación automática de código desde una especificación completamente consistente, fue diseñado para su uso en sistemas críticos, como software aeroespacial, donde la precisión absoluta es esencial.

El siguiente párrafo que referencia al módulo 001 Axes (Sistema de Ejes), extraído del paper presentado por Margaret H. Hamilton y William R. Hackler en el Annual International Symposium, INCOSE 2007 “A Formal Universal Systems Semantics for SysML” nos proporciona una visión preclara acerca de cómo debía comportarse el software:
001AXES captures the theory based on the Apollo empirical studies. What had been created was a universal semantics for defining systems. What sets it apart from other languages is the systems paradigm upon which it is based, Development Before the Fact (DBTF) (Hamilton April 1994). Whereas the traditional approach is “after the fact”, or curative, DBTF is preventative.
001AXES captura la teoría basada en los estudios empíricos de Apolo. Se creó una semántica universal para definir sistemas. Lo que lo distingue de otros lenguajes es el paradigma de sistemas en el que se basa, Desarrollo Previo al Hecho (DBTF) (Hamilton, abril de 1994). Mientras que el enfoque tradicional es “posterior al hecho” o curativo, el DBTF es preventivo.
Los principios de programación del AGC desarrollados por el MIT Instrumentation Laboratory, primero bajo la dirección de Dan Lickly durante 1961-1969, y a partir de 1969 por Margaret Hamilton, formarían los cimientos de la llamada “Ingeniería de software”, un término acuñado por Anthony Oettinger.
De la misma manera la creatividad e intuición de Margaret Hamilton hicieron que nuevos conceptos surgieran como por ejemplo el de prioridad de interrupción, que asignaba distintos niveles de prioridad de ejecución a los procesos introducidos para ejecutar, de esa manera un procedimiento de baja importancia no podía interferir o bloquear otro procedimiento que fuera crítico para el control de la nave lo cual hubiera supuesto una catástrofe. Esta idea abría la puerta al diseño e implementación del mismo concepto en los actuales sistemas Unix/Linux estableciendo un sistema de preferencia en la ejecución de procesos del sistema.
Tan grande fue la influencia de los conceptos que Margaret Hamilton desarrolló que en la década de los 90 y posteriormente en el 2006 se establecieron dos nuevos importantes paradigmas de la ingeniería de software referenciados anteriormente como son el UML (Unified Modeling Language) y el SysML (System Modeling Language).
UML fue creado en los años 90 (publicado en 1997) como un estándar para modelar software orientado a objetos mientras que SysML surgió después, en 2006, como una extensión de UML para ingeniería de sistemas. Todos estos marcos teórico-conceptuales se encuadran dentro de lo que denominamos MBSE (Model-Based Systems Engineering), un paradigma de trabajo y diseño que proporciona el marco teórico-práctico para el desarrollo e integración de software en sistemas autónomos (drones, vehículos, misiles, naves espaciales, barcos, plantas nucleares, equipos médicos, etc…).
La carrera de Margaret Hamilton estuvo llena de reconocimientos hacia el final de la misma, probablemente sin saberlo ni pretenderlo, tanto ella como su equipo de trabajo habían desarrollado ciencia (computacional) sentando las bases de los estándares que se establecerían en las siguientes décadas para la industria del software hasta el día de hoy.
En 1986, recibió el “Premio Augusta Ada Lovelace Award” de la Association for Women in Computing, en 2003, se le otorgó el premio “NASA Exceptional Space Act Award” para contribuciones científicas y técnicas, en 2009, recibió el premio “Outstanding Alumni Award” del Earlham College, 2016, recibió la Medalla Presidencial de la Libertad por el desarrollo del software de las misiones Apolo, y en 2018 fue investida honoris causa por la Universidad Politécnica de Cataluña.
Así avanzan las ciencias, gracias a personas pioneras en el estudio, desarrollo e implementación de ideas teorizadas pero nunca probadas, arriesgando y trabajando muchas veces sobre la base del ensayo-error pero siempre con la perspectiva en el horizonte de ir más allá. Sin duda somos deudores del compromiso y el esfuerzo de personas excepcionales sin distinción de raza, sexo o género. Desde nuestra minúscula trinchera en el ciberespacio les expresamos nuestra gratitud y reconocimiento una vez más.
Descargar paper del Annual International Symposium, INCOSE 2007 “A Formal Universal Systems Semantics for SysML”
No hay reseñas todavía. Sé el primero en escribir una.