Margaret Hamilton et les équipes logicielles d’Apollo
Margaret Hamilton a dirigé au MIT les équipes qui développaient les logiciels de vol d’Apollo. En juillet 1969, ces logiciels ont aidé le module lunaire d’Apollo 11 à poursuivre les tâches essentielles à l’alunissage malgré une surcharge de l’ordinateur de bord.
Hamilton a rejoint le projet Apollo du MIT en 1965, comme première programmeuse recrutée pour le projet et première femme programmeuse de l’équipe. En 1968, elle était directrice adjointe chargée de l’équipe du module de commande et de service. Le développement était collectif : les équipes qu’elle dirigeait écrivaient les logiciels destinés aux modules lunaire, de commande et de service.
Comment le logiciel d’Apollo gérait les surcharges
Lors de l’alunissage d’Apollo 11, en 1969, l’ordinateur de bord a été confronté à une surcharge. Le logiciel a écarté des tâches de moindre priorité pour que les opérations indispensables à l’atterrissage puissent continuer. Cette reprise par priorités a contribué au déroulement de la mission ; elle ne reposait pas sur le travail d’une seule personne.
Le principe est simple, même si sa mise en œuvre ne l’était pas : lorsqu’un ordinateur ne peut pas tout traiter à la fois, il doit préserver les fonctions qui comptent le plus. Les logiciels d’Apollo avaient été conçus pour reconnaître la surcharge et rétablir les tâches prioritaires plutôt que de laisser les opérations essentielles se perdre dans la file d’attente.
L’incident P01 et la mesure de protection
Un épisode survenu pendant une simulation a mis en lumière un autre risque. Lauren Hamilton, la fille de Margaret, a sélectionné le programme de pré-lancement P01 alors que le simulateur était en mode vol, ce qui a provoqué un plantage de la simulation. Hamilton a proposé une protection logicielle après cet incident.
Une erreur distincte s’est ensuite produite pendant Apollo 8, en 1968 : Jim Lovell a activé P01 par inadvertance et des données de navigation ont disparu. Les modifications proposées par Hamilton ont alors été intégrées au logiciel. L’incident du simulateur et celui d’Apollo 8 étaient donc deux événements séparés, liés au même programme.
Des premiers projets informatiques à l’ingénierie logicielle
Avant Apollo, Hamilton avait travaillé sur des logiciels de prévision météorologique avec le météorologue Edward Lorenz. En 1961, elle a rejoint le projet SAGE au MIT Lincoln Laboratory, où elle a programmé le prototype d’ordinateur AN/FSQ-7, également appelé XD-1.
Hamilton a contribué à faire reconnaître l’ingénierie logicielle comme une discipline. Elle expliquait avoir commencé à employer l’expression anglaise software engineering pour distinguer le logiciel du matériel, tout en considérant ces deux domaines comme des composantes de l’ingénierie des systèmes.
Après Apollo, elle a fondé Higher Order Software en 1976, puis Hamilton Technologies en 1985. Le produit phare de cette dernière entreprise, Universal Systems Language, est un langage de modélisation et une méthodologie destinés à l’ingénierie de systèmes complexes, avec une attention particulière à la prévention des erreurs et à la programmation défensive.
Un travail collectif et une distinction publique
La célèbre photographie de Margaret Hamilton près d’une pile de listings Apollo représente le travail des équipes logicielles du module lunaire et des modules de commande et de service qu’elle dirigeait. Elle ne permet pas d’attribuer chaque page à Hamilton seule.
En 2016, Barack Obama a remis à Hamilton la Presidential Medal of Freedom.