Margaret Hamilton (1995) | |
| Państwo działania | |
|---|---|
| Data i miejsce urodzenia | |
| Data i miejsce śmierci |
30 września 2026 |
| Pełne imię i nazwisko |
Margaret Elaine Hamilton |
| Specjalność: informatyka | |
| Alma Mater | |
| informatyk, inżynier oprogramowania | |
| uczelnia |
Projekt SAGE w Lincoln Lab |
| Okres zatrudn. |
1961–1963 |
| agencja kosmiczna | |
| firma |
Higher Order Software (jako dyrektor zarządzająca) |
| Okres zatrudn. |
1976–1984 |
| firma |
Hamilton Technologies, Inc. (jako dyrektor zarządzająca) |
|---|---|
| Okres zatrudn. |
1986– |
| Odznaczenia | |
Margaret Elaine Hamilton (z domu Heafield; ur. 17 sierpnia 1936 w Paoli, zm. 30 września 2026 w Cambridge) – amerykańska informatyczka, inżynierka oprogramowania i przedsiębiorczyni. Była dyrektor ds. inżynierii oprogramowania w Laboratorium Instrumentacji Massachusetts Institute of Technology. Wraz z kierowanym przez siebie zespołem opracowała oprogramowanie systemu pokładowego programu kosmicznego „Apollo”. W 1986 roku założyła i została dyrektor generalną Hamilton Technologies, Inc., w Cambridge, w stanie Massachusetts. Firma została stworzona wokół systemów języka uniwersalnego opartych na jej paradygmacie Rozwoju Przed Faktem (DBTF) dla projektowania systemów i oprogramowania. Stworzyła termin „inżynieria oprogramowania”, ang. software engineering.
Margaret Hamilton opublikowała ponad 130 artykułów, rozpraw i raportów o ok. 60 projektach i 6 znaczących programach, w których brała udział.
22 listopada 2016 roku prezydent USA Barack Obama odznaczył Margaret Hamilton Medalem Wolności za jej pracę, która doprowadziła do opracowania pokładowego oprogramowania lotu misji Apollo – misji NASA na Księżyc.

Margaret Heafield urodziła się w Paoli, w stanie Indiana. Jej rodzicami byli Kenneth Heafield i Ruth Esther Heafield (z domu Partington). Rodzina przeprowadziła się później do stanu Michigan, gdzie w 1954 roku Margaret ukończyła Hancock High School.
Studiowała matematykę na Uniwersytecie w Michigan w 1955 roku, a następnie przeniosła się do Earlham College, gdzie w 1958 roku uzyskała tytuł licencjata (bachelor of arts) z matematyki i specjalizację z filozofii. Po ukończeniu szkoły krótko uczyła matematyki i francuskiego w szkole średniej, aby wesprzeć swojego męża w trakcie studiów na Harvardzie, a ostatecznym celem było uzyskanie dyplomu ukończenia studiów w późniejszym czasie. W międzyczasie przeprowadziła się do Bostonu w stanie Massachusetts, z zamiarem ukończenia studiów magisterskich na Brandeis University, ale zamiast tego rozpoczęła pracę w Massachusetts Institute of Technology.
W MIT pracowała nad oprogramowaniem do przewidywania pogody na komputerach LGP-30 i PDP-1 (w Marvin Minsky's Project MAC) dla profesora Edwarda Nortona Lorenza w dziale meteorologii. W latach 60. XX wieku pisała oprogramowanie również dla Air Force Cambridge Research Laboratories.
Projekt SAGE był modyfikacją projektu Whirlwind rozpoczętego przez MIT w celu stworzenia systemu komputerowego do symulacji lotów. SAGE został przekształcony w system służący do celów typowo wojskowych około 1951 roku. Dzięki siatce radarów połączonych z komputerami miał wykrywać m.in. radzieckie bombowce. Hamilton pracowała nad tym systemem w latach 1961–1963 w Lincoln Lab, gdzie była jedną z programistek. Pracowała wówczas na komputerze AN/FSQ-7.
Hamilton opowiadała o swojej pracy nad SAGE tak:
Kiedy ktoś zaczynał pracę w tej organizacji, zwykle przydzielano mu program, którego nikt wcześniej nie potrafił zrozumieć ani uruchomić. Kiedy ja zaczynałam, również mi go przydzielono. Okazało się, że program był dość skomplikowany, a osoba, która go napisała, czerpała satysfakcję z tego, że wszystkie komentarze były po grecku i po łacinie. Przydzielono mi więc ten program i rzeczywiście udało mi się go uruchomić. Co więcej, wyniki również drukował po łacinie i po grecku. Byłam pierwszą osobą, której udało się go uruchomić.
Hamilton wspominała również, że to właśnie przy pracy nad SAGE zaczęła rozumieć wagę jakości oprogramowania, a w szczególności stabilności działania. Zawieszenie się programu powodowało uruchomienie alarmu, który widzieli inni programiści i operatorzy systemu SAGE.
W 1963 roku wróciła do pracy na uczelni MIT, pomagając w pracach nad systemem do badania pogody. Dzięki temu powrotowi miała później okazję dołączyć do zespołu programistów pracujących w ramach MIT Instrumentation Laboratory, którzy już od 1961 roku zajmowali się misjami z programu Apollo. Gdy zaczynała, misje były jeszcze na etapie przygotowywania bezzałogowego lądowania. Jej pierwszy program był związany z tablicami punktów orientacyjnych na Księżycu. Już po starcie misji okazało się, że tabele zostały wprowadzone odwrotnie niż powinny. Mimo tego misja przebiegła pomyślnie.
Jak wspominała, przy kolejnej misji nadal był traktowana jak początkująca programistka i według niej dlatego przydzielono jej wykonanie programu, który był programem awaryjnym i jako taki nie miał być nigdy uruchomiony. Nawet nazwała ten program „Forget it” (dosł. „Zapomnij o tym”). Program okazał się jednak kluczowy, kiedy niespodziewany scenariusz wydarzył się i Hamilton została ekspertką, a sterowanie zostało przekazane do „Forget it”.

W późniejszym czasie Hamilton przewodziła zespołowi programistów, który był odpowiedzialny za pisanie kodu dla komputera pokładowego w programie Apollo oraz testowanie i certyfikację różnych elementów programu. Zespół został przez nią nazwany Software Engineering Division, co jest o tyle nietypowe, że dziedzina software engineering (inżynieria oprogramowania) jeszcze wówczas nie istniała; koledzy żartowali z niego. Były to wszak początki programowalnych komputerów i procesy związane z tworzeniem oprogramowania dopiero powstawały.
W pracy dla NASA zajmowała się przede wszystkim projektowaniem oprogramowania systemowego, wykrywaniem i obsługą błędów oraz zapewnianiem niezawodności. Wraz z zespołem opracowywała mechanizmy związane z szeregowaniem priorytetowym i przetwarzaniem asynchronicznym. Zajmowała się również testowaniem end-to-end oraz mechanizmami wspomagania decyzji człowieka, w tym wyświetlaniem komunikatów o wysokim priorytecie. Opracowane pod jej kierownictwem rozwiązania odegrały istotną rolę podczas lądowania załogowej misji Apollo 11, kiedy to komputer pokładowy, mimo przeciążenia, pomógł w ukończeniu misji.

Kod misji Apollo został odtajniony i w lipcu 2016 trafił do GitHub-a. Zajmuje nieco ponad 3 MB.