Margaret Hamilton e i team software di Apollo

Margaret Hamilton guidò al MIT i team che svilupparono il software di volo del programma Apollo. Il loro lavoro contribuì a mantenere operative le funzioni essenziali del modulo lunare durante l’allunaggio di Apollo 11, nel luglio 1969. Non era il progetto di una singola programmatrice: nel 1968 oltre 400 persone lavoravano al software di Apollo.

Hamilton entrò nel progetto Apollo al MIT nel 1965, come prima programmatrice assunta per il progetto e prima donna programmatrice del gruppo. Nel 1968 era vicedirettrice responsabile del team software del Modulo di comando e di servizio. La sua leadership si svolgeva quindi dentro un lavoro collettivo, articolato tra gruppi e componenti differenti della missione.

Come il software di Apollo gestiva il sovraccarico

Nel 1969, quando il computer di Apollo 11 fu sovraccaricato, il software organizzato per priorità scartò attività di sfondo non necessarie e lasciò proseguire quelle cruciali per l’allunaggio. In termini semplici: invece di trattare ogni richiesta come ugualmente urgente, il sistema proteggeva i compiti indispensabili alla missione.

Questa gestione del sovraccarico faceva parte del software sviluppato dai team guidati da Hamilton. La sua importanza sta anche nel modo in cui affrontava un problema concreto: conservare le funzioni essenziali del computer quando non poteva occuparsi di tutto contemporaneamente.

L’incidente P01 e una misura di protezione

Un episodio precedente contribuì a mettere in luce il rischio di avviare il programma sbagliato nel momento sbagliato. Durante una simulazione impostata in modalità di volo, Lauren Hamilton, la figlia di Margaret, selezionò P01, il programma di pre-lancio; il simulatore andò in crash. Hamilton propose una modifica software per prevenire quel tipo di errore.

Nel 1968, durante Apollo 8, Jim Lovell attivò per errore P01 e i dati di navigazione scomparvero. Le modifiche proposte da Hamilton furono poi integrate nel software. L’episodio del simulatore e quello in volo furono distinti: il primo mise in evidenza il problema, il secondo rese concreta la necessità di una protezione.

Dai primi progetti informatici all’ingegneria del software

Prima di Apollo, Hamilton lavorò con il meteorologo Edward Lorenz a programmi per le previsioni del tempo. Nel 1961 passò al progetto SAGE del MIT Lincoln Laboratory, dove programmò il prototipo di computer AN/FSQ-7, noto anche come XD-1.

Hamilton raccontò di aver iniziato a usare l’espressione «software engineering» per dare al software una legittimità professionale distinta dall’hardware, mantenendo entrambi nel quadro più ampio dell’ingegneria dei sistemi. Il suo contributo fu promuovere l’ingegneria del software come disciplina; nel 1976 fondò Higher Order Software e, in seguito, Hamilton Technologies. Il prodotto di punta di quest’ultima era Universal Systems Language, un linguaggio e una metodologia per modellare sistemi complessi, con attenzione alla prevenzione degli errori e alla programmazione difensiva.

Un risultato di squadra e un riconoscimento pubblico

La celebre fotografia di Hamilton accanto a una pila di listati mostra pagine prodotte dai team software del Modulo lunare e del Modulo di comando e di servizio. Hamilton guidava quei gruppi, ma l’immagine rappresenta il loro lavoro condiviso.

Nel 2016 Barack Obama conferì a Hamilton la Presidential Medal of Freedom, la più alta onorificenza civile degli Stati Uniti.