211service.com
Margherita Hamilton
Eliminando inesorabilmente gli errori, l'ingegnere del software originale ha aiutato a inviare gli astronauti sulla luna. 16 agosto 2019
Margherita Hamilton TOAN TRINH; STILE DI LAURA DILLON
Quando Margaret Hamilton era una bambina, suo padre la portava a fare lunghi viaggi in auto attraverso la penisola superiore del Michigan. Parlavano per tutto il tempo di filosofia, cose relative, ricorda l'ingegnere del software, che ora ha 83 anni. Come 'e se' e 'perché' e 'perché no'.
Circa due decenni dopo, Hamilton trattenne il respiro nella sala di monitoraggio della missione del MIT Instrumentation Lab come uno dei più grandi what if della storia si sia realizzato. Il 20 luglio 1969, alle 15:17 Tempo di Boston, il modulo lunare Eagle atterrò sulla luna. A quel punto, Hamilton era il capo dell'ingegneria del software per il programma Apollo. Come le piace dire, l'equipaggio dell'Aquila è stato il primo essere umano a camminare sulla superficie lunare e il software del suo team è stato il primo a funzionare su di esso.
In oltre un decennio di lavoro con le missioni Apollo, Hamilton ha aiutato a guidare in sicurezza le astronavi dentro e fuori l'orbita. Ha guidato un gruppo di quasi 100 sviluppatori, portando rigore e rispetto in quello che allora era il nuovissimo campo dell'ingegneria del software. (In effetti, ha inventato il termine ingegnere del software e ha spinto per il suo utilizzo.) E lo ha fatto con creatività e aplomb, guidata da una convinzione ripetutamente confermata: che il non-accaderà mai .
Hamilton ha lasciato il college pensando che sarebbe diventata una matematica, progettando di trovare un lavoro mentre suo marito frequentava la Harvard Law School e poi si iscriveva lei stessa alla scuola di specializzazione. Nel 1959 iniziò a lavorare per il famoso meteorologo del MIT Edward Lorenz, che l'incarico di programmare un computer da 800 libbre chiamato LGP-30.
Hamilton non aveva mai visto un computer. Ma ci ha preso subito, trovando modi non ortodossi per far funzionare più rapidamente quella cosa pesante. Oggi farei passi che sarebbero chiamati programmazione 'difficile', dice. Ad esempio, il debugging manuale prevedeva l'alimentazione lenta del lungo rotolo di carta che conteneva un programma errato nella macchina. Hamilton, che non aveva pazienza per questo, imparò il codice binario e iniziò a modificare i fogli da sola, facendo un buco nel foglio con una matita appuntita per girare un 0 ad un uno , e usando un piccolo pezzo di nastro adesivo per il rovescio. (Il lavoro svolto da Hamilton e altri alla fine ha contribuito a portare al lavoro pionieristico di Lorenz sulla teoria del caos.)
Nel 1961, Hamilton portò questo approccio fuori dagli schemi alla sua posizione successiva, inventando un nuovo protocollo di errore per il massiccio e indisciplinato sistema di difesa aerea SAGE del MIT. Questo computer occupava un intero magazzino ed emetteva suoni di sirena da nebbia e camion dei pompieri quando si è schiantato, dice. Ogni volta che accadeva, chiedeva al programmatore colpevole di posare per una Polaroid, insieme alla documentazione da dove proveniva [l'errore], dice. Se lo stesso errore si è verificato di nuovo, potrebbero coinvolgere quella persona per risolverlo.

Hamilton con codice Apollo, 1969. Museo MIt
I pensieri su quel dottorato di ricerca in matematica svanirono. Dopo anni passati a scoprire cose e inventare cose, si è resa conto di essere rimasta affascinata da questo strano nuovo campo che stava aiutando a creare in un'atmosfera che ha paragonato al selvaggio West. Gli errori, in particolare, continuavano ad affascinarla: non solo trovarli e correggerli, ma tracciarne gli schemi per prevederli e prevenirli. Li consideravo nemici, dice.
Così nel 1964, quando vide un annuncio del MIT Instrumentation Lab che reclutava programmatori per lavorare su software per quello che sarebbe diventato il programma Apollo, Hamilton colse l'occasione. Inizialmente, le fu assegnato quello che si presumeva fosse un progetto a basso impatto, scrivendo il codice che si sarebbe attivato se una missione senza equipaggio fosse stata interrotta. I superiori erano così sicuri che non sarebbe successo, dice, che in realtà ha chiamato il suo programma Forget It. (Quando una di queste missioni è stata interrotta, si è trovata molto richiesta.)
Fu presto promossa a software classificato come uomo, dove un errore poteva mettere a repentaglio la vita di un astronauta. In questo caso, un buon codice doveva essere eseguito correttamente, ma doveva anche rilevare e compensare malfunzionamenti hardware o errori commessi dagli stessi astronauti. Hamilton ha richiamato quello spirito di what-if: e se qualcuno azionasse questo interruttore nel momento sbagliato? Cosa succede se si verifica un'emergenza quando tutti sono occupati? La contabilizzazione di queste possibilità la teneva sveglia la notte. Questo è tutto ciò a cui ho pensato, dice.
A volte l'ispirazione veniva da luoghi inaspettati. Hamilton portava spesso sua figlia, Lauren, in laboratorio con lei di notte e nei fine settimana. Lauren, che allora aveva quattro anni, amava interpretare l'astronauta nei simulatori della squadra e un giorno, premendo i pulsanti a caso, provocò uno spettacolare crash del software. Hamilton ha indagato e ha scoperto che Lauren aveva confuso il programma digitando una sequenza pre-lancio, chiamata P01, nel mezzo della missione, dice.

TOAN Trinh
Ha chiesto ai poteri della NASA di lasciarle aggiungere una protezione per prevenire quell'errore in un volo reale, e lo hanno deriso come troppo improbabile. Ma le hanno lasciato prendere nota. Quando un astronauta ha realizzato quel blooper durante la missione Apollo 8, il primo volo con equipaggio in orbita attorno alla luna, ha causato la scomparsa dei dati di navigazione necessari e hanno chiamato Hamilton per recuperarli. Ricordo di aver detto a un paio di ragazzi lì, 'È l'insetto di Lauren!', dice ridendo.
È stato l'Apollo 11 a spaventare maggiormente la squadra. Proprio mentre l'Aquila stava per atterrare sulla luna, gli astronauti furono interrotti da cinque messaggi di errore che avvertivano che la potenza di calcolo era bassa. Ma poiché il software era così ben progettato, Houston si è fidato di esso per dare la priorità agli aspetti più importanti dell'atterraggio e ha permesso alla missione di procedere. Il team aveva programmato il software per rilevare gli errori e risolverli, ma guardarlo mentre lo faceva durante la discesa di Eagle ha ispirato puro terrore, dice.
Il ruolo di Hamilton nella storia dell'informatica sta ottenendo un maggiore riconoscimento pubblico. Nel 2016 ha ricevuto la Presidential Medal of Freedom da Barack Obama, che ha elogiato il suo spirito di scoperta americano. Nel 2017, una sua foto iconica - occhialuta, sorridente e sminuita da una pila del codice della sua squadra - è stata trasformata in una statuetta Lego.
Tra il suo lavoro all'Apollo e il suo viaggio alla Casa Bianca, Hamilton si è concentrata sull'applicazione di ciò che ha imparato dal programma Apollo mentre inventava un nuovo paradigma per la progettazione di sistemi e lo sviluppo di software. La sua attuale azienda, Hamilton Technologies, ha sviluppato un linguaggio basato su questo paradigma chiamato Universal Systems Language. Ha lo scopo di prevenire i tipi più comuni di errori, invece di tenerne conto a posteriori. Spera che alla fine sarà ampiamente adottato.
È un compito arduo per quella che ora è un'industria multimiliardaria e non più così selvaggia. Ma come avrebbe potuto dire il suo sé d'infanzia: perché no?