Ein Angebot von

Margaret Hamilton: Die Software-Programmiererin der Mondmission Apollo 11

| Autor / Redakteur: Haluka Maier-Borst* / Sebastian Gerstl

Margaret Hamilton steht neben Ausdrucken der Apollo-Flugsoftware.
Margaret Hamilton steht neben Ausdrucken der Apollo-Flugsoftware. (Bild: Draper Laboratory; restored by Adam Cuerden / CC0)

Während ihr Kind unter dem Schreibtisch spielt, leitet Margaret Hamilton das Software-Team der Apollo-11-Mission. Und ganz nebenbei etabliert sie Prinzipien des Programmierens, die bis heute gelten. Doch was von dieser Genialität spiegelt sich in den kryptischen Zeilen des Apollo-11-Codes wider?

Die Frau, die mit einem Berg an Software Männer auf den Mond schickte – sie wäre um ein Haar nie Programmiererin geworden. Wenn da nicht die leidigen Karrierepläne des Ehemanns gewesen wären.

Es ist 1960, als die 24 Jahre junge Mathematikerin Margaret Hamilton einen Job als Programmiererin am MIT in Boston annimmt. Doch der Grund ist nicht ihre Liebe zur Informatik. Sie will ihren Mann während seines dreijährigen Jus-Studiums in Harvard unterstützen. Geld verdienen, während er sich der Universität widmet. Im Anschluss wollen die beiden Rollen tauschen, dann soll sie ihr Diplom in Mathematik machen. Doch dazu kommt es nie.

Schon bald ist Hamilton so begeistert vom Programmieren und so talentiert darin, dass sie sich von einem Projekt ins nächste stürzt. Mit Anfang 30 leitet sie schließlich ein eigenes Team bei der Nasa. Eines, das eine Aufgabe hat, die kaum größer sein könnte. Es soll die Software programmieren, die Neil Armstrong und Buzz Aldrin auf dem Mond landen lassen soll.

Die Software, der Code, der das ermöglicht hat, ist heute öffentlich. Sie ist ein Gemeinschaftswerk von mindestens 19 Männern und 5 Frauen, gespickt mit Kommentaren. Diese sind mit einem # am Anfang der Zeile markiert, so wie es jetzt noch in vielen Programmiersprachen üblich ist. Damals wie heute sollten diese Kommentare erklären, was die Software macht. Aber sie verraten noch mehr. Sie erzählen von der Reise, vom Charakter, vom Humor des Teams. Und von den Fragen, die die Schöpfer des Codes im Verlauf des Projekts umtreiben – also auch Margaret Hamilton.

Wer bin ich?

#HONI SOIT QUI MAL Y PENSE
#*************************
#TABLES FOR THE IGNITION ROUTINE

#Beschämt sei, wer schlecht darüber denkt.
#************
#Tabellen für die Zündungsroutine

„Honi soit qui mal y pense.“ Das sind die Worte, die der Zündungsroutine der Apollo-11-Mission vorangestellt sind. Und sie spiegeln jenes Ringen um Anerkennung wider, das Hamiltons Team am Anfang des Projekts durchlebt. Während die Rolle der Ingenieure klar ist, gibt es anfangs nicht einmal ein Budget für die Software-Abteilung.

Hamilton erfindet bald darauf das Wort „Software-Ingenieur“, vielleicht auch um mehr Respekt zu bekommen. Und doch bleibt vieles anders bei diesen neuartigen Tüftlern. Denn während die klassischen Ingenieure klare Abläufe haben, ist das bei Hamilton und ihren Kollegen nicht der Fall. Das Provisorische gehört zum Alltag von Hamiltons Team. Davon zeugt auch der folgende Kommentar im Code.

Was mache ich hier?

TC BANKCALL # TEMPORARY, I HOPE HOPE HOPE
CADR STOPRATE # TEMPORARY, I HOPE HOPE HOPE

TC Bankcall #Temporär, wie ich hoffe
CADR Stoprate #Temporär, wie ich hoffe

Der Autor oder die Autorin dieser Programmierzeilen hofft, dass dieser Beitrag nur temporär Teil der Software sein wird. Tatsächlich bleibt er aber bis zum Schluss erhalten. Das konstante Improvisieren gehört zum Alltag des Teams und auch zu Hamiltons Leben ganz persönlich. Denn sie ist nicht nur Leiterin des Software-Teams. Sie ist auch Mutter.

Da sowohl ihr Mann als auch sie ehrgeizige Karrierepläne verfolgen, bringt sie kurzerhand ihre 4-jährige Tochter Lauren zur Arbeit mit. Während die Tochter auf dem Büroboden spielt, sitzt die Mutter am Tisch und programmiert vor sich hin. Doch immer wieder fängt die kleine Lauren an, am Steuermodul von Apollo 11 herum zu fingern. Ein Umstand, dem unter anderem die folgende Zeile im Apollo-Code zu verdanken ist.

# 01521 * P01 ILLEGALLY SELECTED

# 01521 * P01 fälschlich angewählt

Als Lauren nämlich eines Tages auf einigen Knöpfen herumdrückt, bringt sie plötzlich das ganze Simulationsprogramm zum Absturz. Margaret Hamilton ist schockiert und macht sich auf die Fehlersuche. Schnell stellt sich heraus: Der Grund für den Crash ist, dass Lauren in der Flugphase das Programmmodul „P01“ ausgewählt hat. Dabei handelt es sich um einen Teil des Programms, der nur vor dem Start ausgeführt werden soll.

Hamilton geht mit dieser Erkenntnis zu ihren Vorgesetzten, warnt sie vor dem Fehler. Doch die erwidern, dass das kein Problem sei. Die Astronauten seien hervorragend ausgebildet, ein solcher Fehler könne keinesfalls passieren. Einige Monate später werden sie eines Besseren belehrt.

Bei einer Vorläufermission von Apollo 11, Apollo 8, aktiviert einer der Astronauten versehentlich „P01“ in der Flugphase und bringt die Software zum Crash – genauso wie die kleine Lauren. Über Stunden müssen Hamilton und ihre Kollegen fieberhaft nach einer Lösung suchen, um das Programm wieder zum Laufen zu bringen. Und sie erreichen, dass eben jener Alarm „01521“ hinzugefügt wird – und dass überhaupt künftig menschliche Fehler beim Programmieren immer einkalkuliert werden. Eine Denkschule, die bis heute für viele Bereiche der Informatik gilt.

„Uns wurde damals klar, dass niemand perfekt ist – nicht einmal Astronauten. Und so suchten wir immer nach neuen Möglichkeiten, uns vorzubereiten, um auch auf das Unerwartete reagieren zu können“, erklärt Hamilton fast 50 Jahre später während eines Vortrags im Jahr 2018.

Wie rede ich darüber?

#"IT WILL BE PROVED TO THY FACE THAT THOU HAST MEN ABOUT THEE THAT
#USUALLY TALK OF A NOUN AND A VERB, AND SUCH ABOMINABLE WORDS AS NO
#CHRISTIAN EAR CAN ENDURE TO HEAR."
#HENRY 6, ACT 2, SCENE 4

#"Es wird dir ins Gesicht bewiesen werden, dass du Leute um dich hast,
#die zu reden pflegen von Nomen und Verbum und dergleichen scheussliche Worte mehr,
#die kein Christenohr geduldig anhören kann." Heinrich VI., Akt 2, Szene 4 (Anm. d. Red.: Eigentlich handelt es sich hier um Heinrich VI., Teil 2, Akt 4, Szene 7, von William Shakespeare.)

In all diesem Chaos entwickeln Hamilton und ihre Kollegen zudem eine eigene Logik in der Programmiersprache. Die Idee ist, dass die Astronauten mithilfe von „Nomen“ und „Verben“ mit jener Maschine kommunizieren, die sie mit mehr als 38 000 km/h Richtung Mond jagt. „V16N65E“ zum Beispiel steht für Verb 16, Nomen 65 und bedeutet:

  • Verb: „Zeige an“
  • Nomen 65: „Die Zeit laut Apollo Guidance Computer“
  • E: Befehl ausführen

Würde aber nun statt „Nomen 65“ etwas anderes stehen, so könnten sich die Astronauten also andere Dinge anzeigen lassen. Auf dieses Software-Prinzip scheint eben jenes Shakespeare-Zitat gemünzt zu sein, das sich im Kommentar des Codes findet. Gleichzeitig schwingt in den Worten wohl auch eine Spur Furcht und Fatalismus mit. Im Drama „Henry VI“ ist das Zitat eine Drohung des englischen Rebellen Cade an Lord Say. Lord Say ist gebildet, spricht Französisch, und ihm wird darum fälschlicherweise vorgeworfen, mit den Franzosen zu paktieren. Says Leben endet, als die englischen Rebellen ihn köpfen; sein Haupt nutzen sie als Trophäe und als Warnzeichen für Gegner.

Gewisse Parallelen dazu mögen auch Hamilton und ihre Kollegen befürchtet haben. Denn dass Hamilton selbst als Sündenbock herhalten müsste, falls etwas schiefginge, davor hatte sie stets Angst: „Ich habe mir immer die Schlagzeilen in den Zeitungen vorgestellt. Wie sie nachforschen würden, wie es dazu (zur Katastrophe, Anm. d. Red) kam, und am Ende alle auf mich zeigen würden.“

CAF CODE500 # ASTRONAUT: PLEASE CRANK THE SILLY THING AROUND

CAF CODE500 # Astronaut: Bitte reiss das dumme Ding rum

Bei all diesem Druck bleibt aber auch noch Zeit für Humor. An einigen Ecken und Enden finden sich Witze und Flüche in den Kommentaren der Software. Einer davon ist dieser, in dem der Programmierer hofft, dass mit diesem Code der Astronaut das „dumme Ding“, also das Landemodul, herumreisst.

Zeilen wie diese deuten auf eine lockere Atmosphäre in dem Team hin. Und so kommt es, dass auch Margaret Hamilton bis spätabends mit ihren Kollegen feiert – nur um danach noch einmal ins Büro zu eilen, weil ihr eingefallen ist, dass sich ein Fehler in den Code eingeschlichen hat.

Und klappt das alles?

SUBMITTED: MARGARET H. HAMILTON
DATE: 28 MAR 69
APPROVED: DANIEL J. LICKLY
APPROVED: FRED H. MARTIN
APPROVED: NORMAN E. SEARS
APPROVED: RICHARD H. BATTIN
APPROVED: DAVID G. HOAG
APPROVED: RALPH R. RAGAN

Eingereicht von: Margaret H. Hamilton
Datum: 28. März 69
Angenommen: Daniel J. Lickly
Angenommen: Fred H. Martin
Angenommen: Norman E. Sears
Angenommen: Richard H. Battin
Angenommen: David G. Hoag
Angenommen: Ralph R. Ragan

Am 28. März 1969, dreieinhalb Monate vor dem Start von Apollo 11, ist es so weit. Die Software steht, über drei Jahre nach Beginn des Projekts. Sechs Männer nicken die Arbeit von Margaret Hamilton und ihrem Team ab. Nun muss sich der Code beweisen. Draussen, im All.

Rund 700 000 Kilometer lang geht alles gut, die Reise zum Mond funktioniert wie geplant. Doch dann beginnt der Landeanflug, und es endet die Ruhe.

# 01201 * EXECUTIVE OVERFLOW-NO VAC AREAS EXEC BAILOUT
# 01202 * EXECUTIVE OVERFLOW-NO CORE SETS EXEC BAILOUT
# 01201 Überlauf – kein ausführender Vac-Bereich, Bail-out
# 01202 Überlauf – keine ausführenden Kern-Sets, Bail-out

Das System der Apollo 11 beginnt die Fehlermeldungen „1201“ und „1202“ auszuspucken, die erklären, dass der Bordcomputer überfordert ist. Neil Armstrong und Buzz Aldrin müssen jetzt binnen Minuten entscheiden, ob sie dennoch das Landemanöver wagen oder den Versuch abbrechen und unverrichteter Dinge zurück zur Erde fliegen sollen. Was am Ende die Mission rettet, ist die Tatsache, dass Margaret Hamilton auch für solche Situationen vorgesorgt hat.

Wenn der Apollo-Computer mehr Aufgaben ausführen muss, als er in der Lage ist zu stemmen, gibt es mehrere Lösungsmöglichkeiten. Die Astronauten können etwa manuell gewisse Aufgaben abbrechen und so die Arbeitslast des Rechners senken. Oder aber die Software entscheidet von selbst, welche Aufgaben höhere Priorität haben, und räumt ihnen den Vorrang ein. Ein für damalige Zeiten revolutionäres Konzept. Und genau Letzteres geschieht nun in der Landephase.

Statt die weniger wichtigen Rechnungen für das fälschlich eingeschaltete Rendez-vous-Radar des Landemoduls „Eagle“ durchzuführen, koordiniert die Software unbeirrt die Vorbereitungen für den Landeanflug. Das Kontrollzentrum in Houston wagt darum das Risiko. Man sagt den Astronauten, sie sollen die Fehlermeldungen ignorieren und den Sinkflug fortsetzen. Schließlich, mit einem Spritrest für noch 30 Sekunden Flugzeit, landen die beiden Astronauten auf dem Mond. „The Eagle has landed“, knackt es über die Funkleitungen. Und das auch dank der Software von Margaret Hamilton.

Raus aus der Software-Krise: 50 Jahre Software-Engineering

Raus aus der Software-Krise: 50 Jahre Software-Engineering

12.10.18 - In den 1960ern beginnen Computer, die Wirtschaft zu erobern. Doch die Softwareentwicklung steckt noch in den Kinderschuhen und verschlingt oft mehr Geld als die zugehörige Hardware. Eine NATO-Tagung in Garmisch-Partenkirchen sucht einen Ausweg: Die Computerlandschaft braucht Software-Engineering! lesen

Originalveröffentlichung auf Neue Zürcher Zeitung (NZZ.ch) vom 12.07.2019

* Haluka Maier-Borst, geboren 1990, ist Wissenschaftsjournalist und Teil des Visual-Teams der NZZ.

Kommentar zu diesem Artikel abgeben
Todesstoß für Apollo 11! Ihr Redakteur (oder derjenige, der das Material fabriziert hat) hat...  lesen
posted am 30.07.2019 um 13:51 von Unregistriert

Mit diesem Artikel befinden wir uns wieder in einem Augenblick von Hochachtung und Respekt den...  lesen
posted am 22.07.2019 um 11:49 von Unregistriert

Mit KI würde ich aktuell nirgendwo gerne hinfliegen, -fahren oder auch nur -gehen. Sie lügt nicht...  lesen
posted am 19.07.2019 um 15:32 von Unregistriert

Die Software ist heute im Hintergrund noch viel komplexer geworden und auch wenn es weniger...  lesen
posted am 19.07.2019 um 12:24 von Unregistriert


Mitdiskutieren
copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 46035469 / Software Engineering)