First Software Engineer | IEEE Computer Society
Det kan komma som en överraskning för de flesta av dagens mjukvaruingenjörer att få veta att grundaren av deras disciplin är en kvinna.
Förvisso är Margaret Hamilton, känd matematiker och pionjär inom datavetenskap, känd för att ha myntat begreppet programvaruteknik när hon utvecklade styr- och navigationssystemet för Apollo-rymdfarkosterna som chef för avdelningen för programvaruteknik vid MIT Instrumentation Laboratory.
Hamilton förklarar varför hon valde att kalla det programvaruteknik:
”Jag kämpade för att ge programvaran legitimitet så att den – och de som byggde den – skulle få den respekt som den förtjänar, och därför började jag använda termen ’programvaruteknik’ för att särskilja den från hårdvara och andra typer av ingenjörskonst, men ändå behandla varje typ av ingenjörskonst som en del av den övergripande systemteknikprocessen. När jag först började använda denna fras ansågs den vara ganska rolig. Det var ett pågående skämt under lång tid. De gillade att driva med mig om mina radikala idéer. Programvara fick så småningom och med nödvändighet samma respekt som alla andra discipliner”, sade hon nyligen i en intervju med den spanska tidningen El Pais.
Nyligen var Hamilton en av huvudtalarna vid den 40:e internationella konferensen om programvaruteknik som hölls i Göteborg, Sverige, där hon den 31 maj höll sitt anförande ”The Language as a Software Engineer.”
Se hela kalendern för IEEE Computer Societys konferenser
I början, enligt Hamilton, visste ingen riktigt vad de gjorde. Programvara var en vildmark. Hon ville att den skulle respekteras som alla andra områden inom teknik.
”Det fanns inget område för programvaruteknik”, sade Hamilton, ”Du var ensam. Kunskap, eller brist på kunskap, fördes vidare från person till person.”
Men även om programvara inte var en viktig del av Apolloprogrammet i början stod det klart 1965 – när Hamilton kom ombord – att programvara skulle bli en integrerad del av arbetet med att placera en människa på månen.
”Systemsimuleringar var en blandning av hårdvara och digitala simuleringar av varje och alla aspekter av ett Apollo-uppdrag, vilket inkluderade man-in-the-loop-simuleringar, för att se till att ett komplett uppdrag från början till slut skulle uppträda exakt som förväntat”, säger Hamilton.
I början gav NASA Hamilton och hennes team fria händer. De var fria att utveckla sina mjukvaruprogram obehindrat. Men sedan förändrades saker och ting.
Vill du ha fler tekniska nyheter? Prenumerera på ComputingEdge Newsletter idag!
”Vi utvecklade våra regler för programvaruteknik med varje ny relevant upptäckt”, säger Hamilton, ”medan NASA:s regler för den högsta ledningen gick från fullständig frihet till byråkratisk överdrift.” (Hon fick en gång frågan hur forskare kunde övervinna en sådan kvävande byråkrati. Hamilton svarade: ”Jag har inget svar på det.”)
Men Hamilton var hårdare mot sig själv än vad någon byråkrat kunde vara.
”Programvaran för rymduppdrag måste vara mansbedömd. Den måste inte bara fungera, den måste också fungera första gången. Inte nog med att programvaran i sig själv måste vara extremt tillförlitlig, den måste kunna utföra felupptäckt och återställning i realtid. Våra språk utmanade oss att göra de mest subtila fel. Vi var ensamma om att komma på regler för att bygga programvara. Det vi lärde oss av felen var fullt av överraskningar”, säger Hamilton.
Läs vårt inslag om ”The Epic Journey of Women in Computing: Framsteg, motgångar och en osäker framtid”, en finalist för ett pris
Hennes iver lönade sig.
Som en följd av att Apollo 11 skulle landa på månen, åsidosatte mjukvaruprogrammet den normala driften för att låta astronauterna veta att något var fel.
Problemen började när datorn överbelastades med kommandon från rendezvousradaren och landningssystemet, vilket krävde mer processorkraft än vad datorn klarade av att hantera. När radarn körde på 13 % och landningssystemet på 90 % var något tvunget att ge vika. Som tur var hade Hamilton programmerat datorn så att den prioriterade uppgifterna efter vikt och inte efter ordning. När prioritetsdisplayerna ställde astronauterna inför ett go/no-go beslut – att landa eller inte landa på månen – sa astronauterna ”Go”.
Och resten är historia.
Hamilton fortsatte att arbeta med NASA:s återstående Apollo-uppdrag samt med SkyLab, USA:s första rymdstation. Hennes strikt specificerade konstruktionsmetoder har blivit grunden för många moderna tekniker för programvaruteknik idag.
Från sina första dagar med NASA till sin nuvarande ställning som legend och koryfé inom programvaruteknik hjälpte Margaret Hamilton till att bana väg för en bransch – som nu är värd långt över en biljon dollar – att förändra världen för alltid.
Hon fick senare NASA:s utmärkelse Exceptional Space Act Award (2003) och Barack Obamas frihetsmedalj (Presidential Medal of Freedom) (2016).
I 1 minut och 20 sekunder i videon ovan beskriver president Obama Hamiltons bidrag till Apolloprogrammet och den tekniska världen.
Highlights av Margaret Hamilton vid ICSE 2018
Margaret Hamilton håller sitt huvudtal vid den 40:e internationella konferensen om programvaruteknik som hölls i Göteborg, Sverige.
Hamilton på scenen vid den 40:e internationella konferensen om programvaruteknik.
Vill du ha fler tekniska nyheter? Prenumerera på ComputingEdge Newsletter idag!
Hamilton svarar på frågor under Q&A. En deltagare frågade Hamilton hur hon skulle råda forskare att bekämpa byråkratin, vilket hon svarade med ett flin: ”Jag har inget svar på det.”
Nenad Medvidovic, en av konferensens organisatörer och professor i datavetenskap vid University of Southern California, ger Hamilton en påse med svensk choklad när hon avslutade sitt tal.
Research by Margaret Hamilton in the Computer Society Digital Library: Universal Systems Language: Lessons Learned from Apollo