First Software Engineer | IEEE Computer Society
Dla większości dzisiejszych inżynierów oprogramowania zaskoczeniem może być fakt, że założycielką ich dyscypliny jest kobieta.
I rzeczywiście, Margaret Hamilton, znana matematyczka i pionierka informatyki, jest uznawana za twórczynię terminu inżynieria oprogramowania podczas opracowywania systemu naprowadzania i nawigacji dla statku kosmicznego Apollo jako szefowa działu inżynierii oprogramowania w Laboratorium Instrumentacyjnym MIT.
Hamilton wyjaśnia, dlaczego zdecydowała się nazwać to inżynierią oprogramowania:
„Walczyłam o usankcjonowanie oprogramowania, aby ono – i ci, którzy je budują – otrzymali należny mu szacunek i dlatego zaczęłam używać terminu 'inżynieria oprogramowania’, aby odróżnić je od sprzętu i innych rodzajów inżynierii, a jednocześnie traktować każdy rodzaj inżynierii jako część ogólnego procesu inżynierii systemów. Kiedy po raz pierwszy zacząłem używać tego zwrotu, był on uważany za dość zabawny. Przez długi czas był to ciągły żart. Lubili mnie nabierać na moje radykalne pomysły. Oprogramowanie w końcu i z konieczności zyskało taki sam szacunek jak każda inna dyscyplina” – powiedziała w niedawnym wywiadzie dla hiszpańskiej gazety El Pais.
Ostatnio Hamilton była głównym mówcą na 40. Międzynarodowej Konferencji Inżynierii Oprogramowania, która odbyła się w Göteborgu w Szwecji, gdzie 31 maja wygłosiła przemówienie „The Language as a Software Engineer.”
Zobacz pełny kalendarz konferencji IEEE Computer Society
W początkach, według Hamilton, nikt tak naprawdę nie wiedział, co robi. Oprogramowanie było dziką puszczą. Chciała, aby było szanowane jak każda inna dziedzina inżynierii.
„Nie istniało pole dla inżynierii oprogramowania”, powiedziała Hamilton, „Byłeś zdany na siebie. Wiedza, lub jej brak, była przekazywana z osoby na osobę.”
Jakkolwiek oprogramowanie nie było ważną częścią programu Apollo na początku, stało się jasne w 1965 roku, kiedy Hamilton weszła na pokład, że oprogramowanie będzie integralną częścią umieszczenia człowieka na Księżycu.
„Symulacje systemów były mieszanką sprzętu i cyfrowych symulacji każdego i wszystkich aspektów misji Apollo, które zawierały symulacje man-in-the-loop, upewniając się, że kompletna misja od początku do końca zachowywałaby się dokładnie tak, jak oczekiwano”, powiedziała Hamilton.
Na początku NASA dała Hamilton i jej zespołowi carte blanche. Byli wolni, aby rozwijać swoje programy komputerowe bez przeszkód. Ale potem wszystko się zmieniło.
Chcesz więcej nowinek technicznych? Subskrybuj biuletyn ComputingEdge już dziś!
„Ewoluowaliśmy nasze zasady 'inżynierii oprogramowania’ z każdym nowym istotnym odkryciem,” powiedziała Hamilton, „podczas gdy zasady najwyższego kierownictwa z NASA przeszły od całkowitej wolności do biurokratycznej przesady.” (Kiedyś zapytano ją, jak badacze mogliby pokonać taką duszącą biurokrację. Hamilton powiedziała: „Nie mam na to odpowiedzi.”)
Ale Hamilton była twardsza dla siebie niż jakikolwiek biurokrata mógłby być.
„Oprogramowanie misji kosmicznej musiało być oceniane przez człowieka. Nie tylko musiało zadziałać, ale musiało zadziałać za pierwszym razem. Nie tylko samo oprogramowanie musiało być ultra-niezawodne, ale musiało też być w stanie wykrywać błędy i naprawiać je w czasie rzeczywistym. Nasze języki ośmielały nas do popełniania najbardziej subtelnych błędów. Byliśmy zdani na samych siebie w wymyślaniu zasad budowania oprogramowania. To, czego nauczyliśmy się na podstawie błędów, było pełne niespodzianek”, powiedział Hamilton.
Przeczytaj nasz artykuł o „Epickiej podróży kobiet w informatyce: Advances, Setbacks, and an Uncertain Future”, finalistę nagrody
Jej zapał się opłacił.
Tuż przed lądowaniem Apollo 11 na Księżycu, oprogramowanie unieważniło normalne operacje, aby dać znać astronautom, że coś jest nie tak.
Problemy zaczęły się, gdy komputer został przeciążony komendami z radaru renderującego i systemu lądowania, wymagającymi więcej mocy obliczeniowej, niż komputer mógł obsłużyć. Z radarem pracującym na 13% i systemem lądowania na 90%, coś musiało ustąpić. Na szczęście Hamilton zaprogramował komputer tak, by nadawał priorytety zadaniom według ważności, a nie kolejności. Kiedy wyświetlacze priorytetów postawiły astronautów przed decyzją „idź/nie idź” – lądować czy nie lądować na Księżycu – astronauci powiedzieli „idź”.”
A reszta to już historia.
Hamilton kontynuowała pracę nad pozostałymi misjami Apollo NASA, jak również SkyLab, pierwszą amerykańską stacją kosmiczną. Jej rygorystycznie określone metody projektowania stały się fundamentem wielu współczesnych technik inżynierii oprogramowania.
Od jej początkujących dni w NASA do jej obecnej pozycji jako legendy i luminarza inżynierii oprogramowania, Margaret Hamilton pomogła utorować drogę dla przemysłu – obecnie wartego ponad bilion dolarów – aby zmienić świat na zawsze.
Później otrzymała nagrodę NASA Exceptional Space Act Award (2003) i Prezydencki Medal Wolności od Baracka Obamy (2016).
Przy 1 minucie, 20 sekundzie znaku w powyższym wideo, prezydent Obama opisuje wkład Hamiltona w program Apollo i świat technologii.
Highlights of Margaret Hamilton at ICSE 2018
Margaret Hamilton wygłasza przemówienie inauguracyjne podczas 40. Międzynarodowej Konferencji Inżynierii Oprogramowania, która odbyła się w Göteborgu w Szwecji.
Hamilton na scenie podczas 40. Międzynarodowej Konferencji Inżynierii Oprogramowania.
Chcesz więcej nowinek technologicznych? Subskrybuj biuletyn ComputingEdge już dziś!
Hamilton odpowiada na pytania podczas Q&A. Jeden z uczestników zapytał Hamilton, jak doradziłaby naukowcom w walce z biurokracją, na co ta odpowiedziała z uśmiechem: „Nie mam na to odpowiedzi.”
Nenad Medvidovic, organizator konferencji i profesor informatyki na Uniwersytecie Południowej Kalifornii, wręcza Hamilton torbę szwedzkich czekoladek na zakończenie jej wystąpienia.
Badania Margaret Hamilton w Computer Society Digital Library: Universal Systems Language: Lessons Learned from Apollo
.