Margaret Heafield Hamilton, née Margaret Heafield le [1], est une informaticienne, ingénieure système et cheffe d'entreprise américaine. Elle était directrice du département génie logiciel (« software engineering », terme de son invention[2]) au sein du MIT Instrumentation Laboratory qui conçut le système embarqué du programme spatial Apollo[3]. En 1986, elle fonde la société Hamilton Technologies, Inc. à partir de ses travaux entrepris au MIT.
Biographie
Famille et études
Margaret Heafield Hamilton est née à Paoli dans l'Indiana, États-Unis ; elle est la fille de Kenneth Heafield et Ruth Esther Heafield (née Partington)[4],[5]. Après avoir fini ses études secondaires à la Hancock High School, en 1954[6], elle étudie les mathématiques à l'Université du Michigan en 1955, avant d'obtenir sa licence (Bachelor of Arts) de mathématiques au sein du Earlham College en 1958 (mineure en philosophie)[7],[8].
Au laboratoire Draper elle travaille pour les missions du programme Apollo de la NASA sur les logiciels embarqués dans les vaisseaux spatiaux qui doivent prendre en charge la navigation et l'atterrissage sur la Lune. Elle devient responsable de l'équipe chargée du développement du logiciel embarqué utilisé par les missions Apollo puis Skylab[3]. Elle acquiert ainsi une solide expérience sur la conception des logiciels à une époque où les méthodes de gestion et de conception des projets informatiques en sont à leur balbutiement.
Dans le cadre de ces projets informatiques, son domaine d'expertise concerne la conception de système et de développement de logiciels, la modélisation de processus, la conception de systèmes de prévention, le paradigme de développement, les systèmes formels et des langages informatiques de modélisation, la conception et de la programmation orientée objet, la gestion automatisée des cycles de vie, les méthodes de fiabilisation et de réutilisation des logiciels, l'analyse de domaine, l'exactitude de propriétés linguistiques intégrées, les techniques d'architecture ouverte pour des systèmes robustes, l'automatisation du cycle de vie complet, l'assurance qualité, l'intégration transparente, les systèmes distribués, les techniques de détection d'erreur et de récupération, les systèmes d'interface homme-machine, les systèmes d'exploitation, les techniques de test bout en bout et des techniques de gestion du cycle de vie[3].
Elle innove dans le domaine du processus de construction des programmes de vols et de leur environnement de développement, en normalisant et en rationalisant ces processus dans toutes les phases de développement, qui sont réutilisés de version en version, ou entre les logiciels du LM et le CM, jusqu'au programme Skylab[3].
Trois minutes avant que le module lunaire Apollo atteigne la surface de la Lune, des alarmes informatiques répétées se déclenchent[9]. Elles signalent que l'ordinateur AGC est saturé. Par ailleurs, l'ordinateur de navigation ainsi que l’ordinateur de pilotage transmettent des ordres contradictoires[9].
Grâce à l'architecture du système d'exploitation attribuant des priorités aux programmes, l'ordinateur réussit néanmoins à mener sa mission principale consistant à poser le module lunaire sur la Lune[9]. Le logiciel était conçu en utilisant des exécutions asynchrones de telle manière que les tâches ayant la plus haute priorité (essentielles à l'atterrissage) puissent interrompre des tâches moins prioritaires. L'analyse de l'incident effectuée après la mission l'avait attribué à une erreur de l'équipage qui aurait laissé le radar fonctionner dans cette phase de vol saturant les capacités de calcul limitées de l'AGC. Une nouvelle analyse réalisée en 2005 a conclu qu'il s'agissait d'une erreur dans la conception matérielle du radar qui continuait à envoyer des informations à l'ordinateur alors qu'il avait été mis en veille par l'équipage[12].
« Suite à une erreur dans le manuel décrivant la checklist, le bouton d'arrêt du radar de rendez-vous a été placé dans la mauvaise position. Ce qui a provoqué l'envoi de mauvais signaux à l'ordinateur. Il était ainsi demandé à l'ordinateur de réaliser toutes les tâches liées à l'atterrissage tout en recevant une charge supplémentaire qui utilisait plus de 15 % du temps de traitement. L'ordinateur (ou plutôt son logiciel) a été assez intelligent pour reconnaître qu'on lui demandait d'effectuer plus de tâches qu'il ne devait en accomplir. Il a lancé une alarme qui indiquait aux astronautes "J'ai trop de tâches à effectuer par rapport à ce que je suis en mesure de réaliser et je vais continuer en n'effectuant que les tâches les plus importantes", c'est-à-dire celles associées à l'atterrissage. En fait, l'ordinateur était programmé pour faire mieux que simplement identifier une situation d'erreur. Des programmes de récupération avaient été incorporés dans le logiciel qui permettaient d'éliminer les tâches ayant les priorités plus faibles et d’exécuter les plus importantes. Si l'ordinateur n'avait pas reconnu le problème et entrepris ces actions de récupérations, je doute qu'Apollo 11 aurait réussi son atterrissage sur la Lune comme il l'a fait. »
De 1976 à 1984, Hamilton est la PDG de l'entreprise Higher Order Software (HOS), qu'elle co-fonde avec Saydean Zeldin, d'après son expérience au MIT où elle a développé des techniques, notamment pour la détection des erreurs. L'entreprise produit un programme appelé USE.IT basé sur la technologie HOS développée au MIT. Il est utilisé dans de nombreux projets gouvernementaux[14].
En 1986, elle crée et dirige la société Hamilton Technologies[7] qui met au point un nouveau langage de programmation : l'Universal Systems Language(en) (USL) et son environnement automatique associé, le « 001 Tool Suite ». Cet environnement est basé sur le paradigme « Development Before The Fact » (DBTF) pour le design de systèmes et le développement logiciel. Le DBTF est mis au point lors de son expérience avec la NASA.
Un rôle de précurseur en rupture avec les usages de l'époque
Dans les années 1960 Margaret Hamilton constituait une exception dans le milieu scientifique essentiellement masculin dans lesquels les postes de responsabilité technique étaient rarement attribués aux femmes. Toutefois, l'informatique était encore peu reconnue, et peu prisée par les hommes[15]. Mère d'une petite fille, elle devait affronter les critiques des personnes qui ne comprenaient pas qu'une mère puisse poursuivre une carrière en parallèle[16]. Malgré les réalisations et les innovations de Margaret Hamilton, la proportion de femmes dans ce domaine reste faible[17]. Elle est notamment citée dans l'initiative de Maia Weinstock pour que Lego crée des figurines pour rendre hommage aux « femmes de la Nasa »[18].
2003, NASA Exceptional Space Act Award for scientific and technical contributions. Cette récompense de 37 200 $ représente la plus forte somme donnée en récompense à un individu de l'histoire de la NASA[19],[20],[11].
2019, pour célébrer les 50 ans de l'alunissage d'Apollo 11, Google décide de rendre hommage à Margaret Hamilton. Les miroirs de l'installation solaire Ivanpah sont configurés de manière à refléter la lumière de la Lune pour créer une image de Margaret Hamilton et d'Apollo 11[27].
Hamilton a publié plus de 130 articles et rapports concernant la soixantaine de projets et les 6 programmes majeurs auxquels elle a participé[3].
M. Hamilton, S. Zeldin (1976) "Higher order software—A methodology for defining software" IEEE Transactions on Software Engineering, vol. SE-2, no. 1, .
M. Hamilton (1994), Inside Development Before the Fact, cover story, Editorial Supplement, 8ES-24ES. Electronic Design, Apr. 1994.
M. Hamilton, Hackler, W.R.. (2004), Deeply Integrated Guidance Navigation Unit (DI-GNU) Common Software Architecture Principles (revised dec-29-04), DAAAE30-02-D-1020 and DAAB07-98-D-H502/0180, Picatinny Arsenal, NJ, 2003-2004.
↑(en) Ruth H. Heafield, Christine M. Haigh, Christine M. Barnes et Elaine Beddingham, Advancing Nursing Practice in Pain Management, Chichester, West Sussex/Ames, Iowa, Wiley-Blackwell, , 210 p. (ISBN978-1-4443-1872-2 et 9781405176996, lire en ligne), p. 93–111.
↑Sean O'Keefe, administrateur de la NASA, a commenté cette récompense en disant "Les concepts qu'elle a créés avec son équipe sont devenus les blocs de base de l'ingénierie logicielle moderne. C'est un honneur de reconnaître Mme Hamilton pour ses contributions extraordinaires à la NASA.".