Margaret Hamilton kierowała zespołami, które tworzyły oprogramowanie pokładowe Apollo w laboratorium MIT. Podczas lądowania Apollo 11 w lipcu 1969 roku komputer został przeciążony, ale oprogramowanie odrzuciło zadania o niższym priorytecie i pozwoliło kontynuować te kluczowe dla lądowania.

Margaret Hamilton i zespoły programistyczne Apollo

Hamilton dołączyła do projektu Apollo w MIT w 1965 roku jako pierwsza zatrudniona w nim programistka i pierwsza kobieta programistka. W 1968 roku była zastępczynią dyrektora odpowiedzialną za zespół tworzący oprogramowanie modułu dowodzenia i serwisowego.

To była praca zespołowa: Hamilton kierowała grupami pracującymi nad oprogramowaniem pokładowym, a nie pisała samodzielnie każdej jego części. Wydruki kojarzone z jej nazwiskiem przedstawiają listingi przygotowane przez zespoły tworzące oprogramowanie modułu księżycowego oraz modułu dowodzenia i serwisowego.

Jak oprogramowanie Apollo radziło sobie z przeciążeniem

Podczas lądowania Apollo 11 w 1969 roku komputer pokładowy musiał obsługiwać więcej zadań, niż mógł wykonać jednocześnie. Oprogramowanie oparte na priorytetach odrzucało mniej ważne zadania w tle, dzięki czemu mogło podtrzymać te niezbędne do lądowania.

Priorytet oznaczał tu kolejność ważności pracy komputera: jeśli zabrakło zasobów na wszystko, system chronił zadania krytyczne dla misji. Mechanizm ten pomógł kontynuować operacje lądowania; sukces Apollo 11 zależał jednak od pracy całej misji, nie od samego oprogramowania.

Incydent P01 i zabezpieczenie

Przed lotem Apollo 8 Hamilton zauważyła problem podczas symulacji. Jej czteroletnia córka Lauren uruchomiła program przedstartowy P01, gdy symulator działał w trybie lotu, co doprowadziło do jego awarii. Hamilton zaproponowała zmianę oprogramowania, by zabezpieczyć się przed takim zdarzeniem.

W 1968 roku astronauta Jim Lovell przypadkowo uruchomił P01 podczas Apollo 8, a dane nawigacyjne zniknęły. Po tym incydencie proponowane przez Hamilton zmiany wprowadzono do oprogramowania. Zdarzenie w symulatorze i błąd podczas misji były odrębnymi sytuacjami, ale oba wskazały, jak ważne jest przewidywanie skutków nieoczekiwanych działań.

Od wczesnych projektów komputerowych do inżynierii oprogramowania

Zanim zaczęła pracować przy Apollo, Hamilton ukończyła w 1958 roku studia matematyczne w Earlham College, z dodatkowym przedmiotem z filozofii. Rok później przeniosła się do Bostonu i pracowała w MIT przy oprogramowaniu do prognozowania pogody, współpracując z meteorologiem Edwardem Lorenzem. W 1961 roku dołączyła do projektu SAGE w MIT Lincoln Laboratory, gdzie programowała prototyp komputera AN/FSQ-7, znany także jako XD-1.

Hamilton opowiadała, że zaczęła używać określenia „inżynieria oprogramowania”, by podkreślić rangę pracy nad oprogramowaniem i odróżnić ją od pracy nad sprzętem, a zarazem traktować obie dziedziny jako elementy inżynierii systemów.

Po pracy przy Apollo założyła w 1976 roku firmę Higher Order Software, a w 1985 roku Hamilton Technologies. Jej późniejsza firma rozwijała Universal Systems Language, język modelowania systemów i metodologię projektowania z naciskiem na zapobieganie błędom oraz programowanie defensywne.

Praca zespołowa i publiczne wyróżnienie

W 2016 roku Margaret Hamilton otrzymała Prezydencki Medal Wolności. Było to jedno z publicznych wyróżnień dla osoby, której praca nad oprogramowaniem Apollo obejmowała zarówno kierowanie zespołami, jak i rozwijanie podejścia do projektowania systemów.