Margaret Hamilton leitete am MIT Teams, die die Flugsoftware für das Apollo-Programm entwickelten. Bei der Apollo-11-Mondlandung 1969 sorgte eine priorisierte Wiederherstellung dafür, dass wichtige Landeaufgaben trotz Rechnerüberlastung weiterlaufen konnten: Weniger dringliche Hintergrundaufgaben wurden zurückgestellt.

Margaret Hamilton und die Apollo-Softwareteams

Hamilton kam 1965 als erste Programmiererin zum Apollo-Projekt am MIT und war dort zugleich die erste Frau in dieser Rolle. 1968 war sie stellvertretende Direktorin und für das Softwareteam des Command and Service Module verantwortlich. Die Apollo-Software entstand in Teams; Hamiltons Bedeutung lag auch in ihrer Leitung dieser Arbeit.

Das zeigt sich auch auf dem berühmten Foto, auf dem Hamilton neben einem Stapel ausgedruckter Programmlistings steht. Die Seiten stammen aus der Arbeit der Teams für die Flugsoftware des Lunar Module und des Command and Service Module. Sie stehen damit für gemeinschaftlich entwickelte Apollo-Software.

Wie Apollo-Software mit Überlastung umging

Während der Landung von Apollo 11 im Juli 1969 geriet der Bordcomputer unter Überlast. Die Software priorisierte die Aufgaben: Sie stellte unnötige Hintergrundarbeit zurück, damit die für die Landung entscheidenden Abläufe weiterlaufen konnten. Das war kein einzelner Programmiertrick, sondern eine geplante Reaktion darauf, dass der Computer mehr Arbeit erhielt, als er gleichzeitig bewältigen konnte.

Der entscheidende Unterschied: Nicht jede Aufgabe musste gleich wichtig bleiben. Indem das System weniger dringliche Arbeit abwarf und wichtige Funktionen aufrechterhielt, konnte die Landung fortgesetzt werden. Die Software war ein Beitrag zum Erfolg der Mission, nicht dessen alleinige Ursache.

Der P01-Vorfall und eine Schutzmaßnahme

Ein weiterer Vorfall machte deutlich, wie wichtig es war, Fehlbedienungen mitzudenken. Während eines Simulatorflugs wählte Hamiltons vierjährige Tochter Lauren versehentlich P01, ein Programm für die Zeit vor dem Start. Der Wechsel in diesen Zustand ließ den Simulator abstürzen.

Hamilton schlug daraufhin Schutzmaßnahmen vor. Während Apollo 8 aktivierte Jim Lovell später versehentlich ebenfalls P01; dabei verschwanden Navigationsdaten. Danach wurden Hamiltons vorgeschlagene Änderungen in die Software aufgenommen. Der Simulatorvorfall und der Fehler während der Mission waren zwei getrennte Ereignisse – der erste lieferte den Anlass, über eine solche Eingabe nachzudenken, der zweite machte die Schutzmaßnahme unmittelbar relevant.

Von frühen Computerprojekten zur Softwaretechnik

Hamilton arbeitete zunächst an Wettervorhersage-Software mit dem Meteorologen Edward Lorenz. 1961 wechselte sie zum SAGE-Projekt am MIT Lincoln Laboratory und programmierte dort für den Prototypcomputer AN/FSQ-7, auch XD-1 genannt. Diese Stationen gingen ihrer Arbeit für Apollo voraus.

Hamilton setzte sich dafür ein, Software als ernstzunehmende Ingenieursarbeit anzuerkennen. Sie erklärte, sie habe begonnen, den Ausdruck „software engineering“ zu verwenden, um Software von Hardware zu unterscheiden und beide zugleich als Teile des Systems Engineering zu behandeln. Ihr Beitrag war die Förderung dieser Denkweise – nicht die belegte Erfindung des Ausdrucks.

Nach Apollo gründete Hamilton 1976 Higher Order Software, ein Unternehmen mit Schwerpunkt auf Fehlervermeidung und Fehlertoleranz. 1985 gründete sie Hamilton Technologies. Dessen zentrales Produkt ist Universal Systems Language, eine Modellierungssprache und Methodik für komplexe Systeme, die Fehlervermeidung und defensive Programmierung in den Mittelpunkt stellt.

Teamarbeit und eine öffentliche Auszeichnung

Hamilton erhielt 2016 die Presidential Medal of Freedom. Die Auszeichnung würdigte eine Karriere, die von früher Computerprogrammierung über die Leitung von Apollo-Softwareteams bis zur Entwicklung eigener Methoden für komplexe Softwaresysteme reichte.