Verso le 16:00 del 20 luglio 1969, l'umanità era a pochi minuti dall'atterraggio sulla superficie lunare. Ma prima che gli astronauti iniziassero la discesa finale si accese un allarme d'emergenza. Qualcosa stava sovraccaricando il computer e minacciava di annullare l'atterraggio. Sulla Terra, Margaret Hamilton trattenne il respiro. Aveva guidato il team che aveva sviluppato quel pionieristico software di volo, perciò sapeva che la missione non aveva margini di errore. Ma la natura di quell'emergenza dell'ultimo minuto presto dimostrò che il suo software funzionava esattamente come previsto. Nata 33 anni prima a Paoli, nell'Indiana, la Hamilton era sempre stata curiosa. All'università, aveva studiato matematica e filosofia, prima di un incarico di ricerca presso l'Istituto di Tecnologia del Massachusetts per pagarsi la specializzazione. Qui conobbe il suo primo computer, mentre sviluppava un software a sostegno della ricerca nel nuovo campo della teoria del caos. In seguito, al MIT Lincoln Laboratory, la Hamilton sviluppò il primo software per il sistema di difesa aerea americano atto a individuare gli aerei nemici. Ma quando venne a sapere che il rinomato ingegnere Charles Draper stava cercando aiuto per mandare l'uomo sulla Luna, si unì immediatamente al suo team. La NASA si affidò a Draper e al suo gruppo di più di 400 ingegneri per inventare il primo computer di volo digitale compatto: l'Apollo Guidance Computer. Utilizzando gli input degli astronauti, il dispositivo avrebbe vigilato sulla guida, sulla navigazione e sul controllo dell'astronave. In un'epoca in cui computer inaffidabili occupavano intere stanze, l'ACG doveva operare senza errori, ed entrare in uno spazio ben inferiore al metro cubo. Draper divise il laboratorio in due squadre, una per progettare l'hardware e l'altra per sviluppare il software. La Hamilton guidò il team che costruì il software di bordo, sia per il Modulo di Comando che per il Modulo Lunare. Questo lavoro, per il quale coniò il termine "ingegneria del software", era incredibilmente rischioso. Erano in gioco vite umane, perciò ogni programma doveva essere perfetto. Il software di Margaret doveva rilevare subito gli errori inaspettati e risolverli in tempo reale. Ma questo tipo di programma adattabile era difficile da realizzare, perchè i primi software potevano processare i job solo in un ordine prestabilito. Per risolvere il problema, Margaret progettò il suo programma in modo che fosse "asincrono": ciò significa che i job più importanti avrebbero potuto interrompere quelli meno importanti. Il suo team assegnò a ogni compito una priorità unica per garantire che ogni job si svolgesse nel giusto ordine, e al momento giusto, indipendentemente da qualunque imprevisto. Dopo questa scoperta, Margaret capì che il suo software poteva aiutare gli astronauti a lavorare anche in un ambiente asincrono. Progettò i Display di Priorità che avrebbero interrotto i compiti regolari degli astronauti per allertarli in caso di emergenze. L'astronauta avrebbe poi comunicato con il Controllo Missione per decidere la strada migliore da seguire. Si trattò del primo software di volo che comunicava direttamente, e in maniera asincrona, con un pilota. Furono questi sistemi di sicurezza a far scattare l'allarme poco prima dello sbarco sulla Luna. Buzz Aldrin si accorse velocemente del suo errore: aveva inavvertitamente azionato l'interruttore del radar del rendez-vous. Questo radar era essenziale per il loro rientro a casa, ma stava consumando risorse computazionali vitali. Fortunatamente, l'Apollo Guidance Computer era ben preparato a gestire la situazione. Durante il sovraccarico, i programmi di riavvio del software permisero di processare soltanto i job di massima priorità, inclusi i programmi necessari all'atterraggio. I Display di Priorità diedero agli astronauti la scelta: atterrare oppure no. Con pochi minuti a disposizione, il Controllo Missione diede l'ordine. L'atterraggio dell'Apollo 11 riguardò astronauti, Controllo Missione, software e hardware, in un lavoro comune pari a un sistema integrato di sistemi. I contributi della Hamilton furono cruciali per il lavoro di ingegneri e scienziati, ispirati dall'obiettivo del Presidente John F. Kennedy di raggiungere la Luna. E il suo lavoro salvavita andò ben oltre l'Apollo 11: non è mai più stato trovato nessun bug nei software di volo delle missioni Apollo con equipaggio. Dopo il suo lavoro sull'Apollo, la Hamilton fondò una società che usa il cosiddetto Universal Systems Language per creare innovazioni per sistemi e software. Nel 2003, la NASA premiò i suoi successi con il più cospicuo contributo finanziario mai assegnato a un individuo. E 47 anni dopo che il suo software aveva guidato gli astronauti per la prima volta sulla Luna, la Hamilton fu insignita della Medaglia Presidenziale della Libertà per aver cambiato il nostro modo di concepire la tecnologia.