Margaret Hamilton leidde bij MIT Instrumentation Laboratory teams die de vluchtsoftware voor Apollo ontwikkelden. Tijdens de maanlanding van Apollo 11 in 1969 zorgde die software ervoor dat cruciale taken konden doorgaan toen de boordcomputer overbelast raakte: minder belangrijke taken maakten plaats voor werk dat nodig was voor de landing.

Margaret Hamilton en de Apollo-softwareteams

Hamilton kwam in 1965 bij het Apollo-project van MIT als eerste programmeur die daarvoor werd aangenomen en als eerste vrouwelijke programmeur van het project. In 1968 was ze adjunct-directeur en verantwoordelijk voor het team dat de software voor de Command and Service Module ontwikkelde. Het Apollo-programma was teamwerk: Hamilton leidde groepen die samen de vluchtsoftware voor de maanmodule en de Command and Service Module maakten.

Die samenwerking is ook terug te zien in de beroemde foto van Hamilton naast een stapel softwarelijsten. De papieren bevatten listings die waren gemaakt door de teams achter de twee modules. Ze verbeelden de omvang van het werk, niet één programmeurs persoonlijke code.

Hoe Apollo-software overbelasting opving

Tijdens de maanlanding van Apollo 11 in juli 1969 raakte de boordcomputer overbelast. De prioriteitgestuurde software liet minder belangrijke achtergrondtaken vallen, zodat taken die essentieel waren voor de landing konden doorgaan. Dat was een herstelstrategie: de computer hoefde niet elk verzoek even belangrijk te behandelen.

Het onderscheid is belangrijk. De software hielp de landingsfuncties overeind te houden, maar de Apollo 11-landing was het resultaat van een groter programma en veel mensenwerk. Hamiltons teams bouwden een systeem dat onder druk de belangrijke taken voorrang kon geven.

Het P01-incident en een softwarebeveiliging

Een incident in een simulator liet zien hoe een onbedoelde invoer problemen kon veroorzaken. Lauren Hamilton, Margarets vierjarige dochter, startte tijdens een simulatie in vliegmodus het P01-voorstartprogramma. De simulator liep daardoor vast. Hamilton stelde daarna een softwareaanpassing voor.

Tijdens Apollo 8 in 1968 activeerde astronaut Jim Lovell P01 later per ongeluk tijdens de vlucht. Navigatiegegevens verdwenen; de voorgestelde aanpassingen van Hamilton werden vervolgens in de software opgenomen. De simulatorgebeurtenis en de fout tijdens de missie waren afzonderlijke incidenten, maar samen maakten ze duidelijk waarom software ook met onbedoelde invoer rekening moest houden.

Van vroege computerprojecten naar software engineering

Voordat Hamilton aan Apollo werkte, programmeerde ze software voor weersvoorspellingen in samenwerking met meteoroloog Edward Lorenz. In 1961 ging ze aan de slag bij het SAGE-project van MIT Lincoln Laboratory, waar ze werkte aan de prototypecomputer AN/FSQ-7, ook bekend als XD-1.

Hamilton hielp software engineering als vakgebied vormgeven. Ze vertelde dat ze de term begon te gebruiken om software te onderscheiden van hardware en beide te behandelen als onderdelen van systeemengineering. Haar loopbaan omvatte ook ondernemerschap: in 1976 richtte ze Higher Order Software op en later Hamilton Technologies. Het vlaggenschip van dat laatste bedrijf is Universal Systems Language, een taal en methode voor het modelleren van complexe systemen met nadruk op foutpreventie en defensief programmeren.

Teamwerk en een publieke onderscheiding

In 2016 ontving Hamilton de Presidential Medal of Freedom. De onderscheiding erkende haar bijdrage aan een discipline die tijdens Apollo niet losstond van de hardware: de software moest, net als de rest van het systeem, betrouwbaar blijven wanneer de omstandigheden veranderden.