IngegneriaIngegneria Informatica

Margaret Hamilton: la donna che ci portò sulla Luna con un codice

Al giorno d’oggi, l’ingegneria informatica ed ancora più nello specifico, l’ingegneria del software, è vista come un campo prettamente maschile,  ma non tutti sanno che fu proprio una donna a coniare il termine “software engineering” e gettare le fondamenta di questa disciplina, grazie al suo lavoro eccezionale. Questa donna era Margaret Hamilton, all’epoca direttrice Software Engineering Division del programma Apollo ed è grazie a lei e al  suo codice che Neil Armstrong e Buzz Aldrin sono potuti atterrare sani e salvi sulla Luna.

 

 

Biografia

Margaret Hamilton nacque il 17 agosto del 1936 a Paoli (Indiana), negli USA.  Studiò matematica all’Università del Michigan e dopo aver insegnato per qualche anno, prese un dottorato in Matematica Astratta.  Nel 1930 cominciò a lavorare da internista al MIT (Massachusetts Institute of Technology) ed uno dei suoi primi incarichi fu quello di occuparsi di un software che prevedesse i fenomeni meteorologi. Successivamente, dal 1961 al 1963, lavorò al progetto SAGE ai Lincoln Lab, che fu molto importante per gli USA della guerra fredda, poiché serviva ad individuare aeroplani nemici. Il suo contributo fu importante al punto tale di essere notata dalla NASA e reclutata per partecipare alla famosissima missione Apollo 11. Fu assegnata al ruolo di direttrice della divisione software ed il suo compito fu quello di progettare il software di bordo dell’Apollo 11, in un’epoca in cui i corsi di ingegneria informatica e del software non esistevano ed il lavoro di programmatore ed era considerato di seconda categoria.

Margaret Hamilton con il codice sorgente del Software dell’Apollo 11 – 1969, ©NASA

 

APOLLO 11

Il contributo della Hamilton fu fondamentale al successo dell’allunaggio del 1969. Infatti, la navicella utilizzava quel codice scritto interamente a mano dalla allora trentatreenne Margaret.
L’importanza di tale codice si dimostrò quando, pochi minuti prima dell’allunaggio, si verificò a bordo un imprevisto.  Il computer di bordo iniziò a segnalare messaggi di errore nella fase più critica. Questo successe perché il sistema stava andando in sovraccarico e quindi non riusciva più ad eseguire i compiti preassegnati. Neil Armstrong e Buzz Aldrin chiamarono Terra per avvertire del problema e ricevere istruzioni e gli fu detto di ignorare i messaggi e continuare con la missione.  Questo perché, Margaret Hamilton aveva previsto che si sarebbe potuto verificare un errore di questo tipo ed aveva quindi programmato anche una soluzione. Infatti, il codice da lei scritto era estremamente robusto grazie ad un principio che aveva deciso di implementare insieme alla sua squadra per cui non vi furono problemi. Il codice era basato su elaborazione asincrona e schedulazione delle priorità e quindi fu in grado di sospendere tutti i processi a priorità inferiore e concentrarsi su quello a priorità maggiore in quel momento, ovvero l’allunaggio. La decisione di non fare nulla per contrastare l’errore e di fidarsi del codice, fu quella giusta, infatti il 20 luglio del 1969 gli astronauti furono i primi uomini a mettere piede sulla Luna.
In seguito, si scoprì che il sovraccarico fu causato da un “errore di documentazione”, che fece partire il sistema  radar di rendevouz, non  necessario in fase d’atterraggio, ma che stava occupando cycle per riazzerare il contatore.
A proposito di questa esperienza, la Hamilton dichiarò  “L’azione eseguita dal software, in questo caso, fu quella di eliminare i processi a priorità più bassa e ripristinare i più importanti … Se il computer non avesse riconosciuto questo problema e reagito di conseguenza, dubito che l’allunaggio dell’Apollo 11 sarebbe stato il successo che fu.”
Grazie a questo successo, Margaret Hamilton ebbe una carriera in ascesa.

 

Hamilton nell’Apollo Command/Service Module ©NASA

 

La sua influenza nell’Ingegneria del Software

Dopo l’esperienza con l’Apollo 11, Margaret Hamilton partecipò a molti altri progetti della NASA e nel 1986 decise di fondare una sua società, l’Hamilton Technologies, con l’obiettivo di espandere USL (Universal System Language), un linguaggio di programmazione sviluppato per la NASA, in modo da rendere i software più affidabili, meno costosi e più efficienti, al quale lavora ancora oggi e che continua a contribuire al progresso tecnologico.
Negli anni ha ricevuto molti premi, fra cui l’Exceptional Space Award della NASA nel 2003 e la Medaglia Presidenziale della libertà dal Presidente Barack Obama nel 2016. Nel 2017, è stata anche inclusa nel set LEGO delle “Women in NASA”, distribuito in tutto il mondo!
Grazie a lei e a tutte le altre ingegneri  donne e scienziate (come Annie Easley e Katherine Johnson), che all’epoca hanno sfidato il campo della tecnologia predominato dagli uomini,  è stato possibile per le donne entrare in percorsi di studio STEM (Science, Technology, Engineering and Mathematics) .
In un’intervista del 2016 con Futurism, la Hamilton dà un consiglio a tutti i giovani che si vogliono addentrare negli studi: “Non si  deve mai avere paura di dire “Non lo so” o “Non capisco” o di fare domande “stupide”, poiché nessuna domanda è una domanda stupida. Bisogna continuare anche quando le cose sembrano impossibili, anche quando i cosiddetti esperti dicono che è impossibile; bisogna essere autonomi ed esse diversi; non aver paura di sbagliare o di ammettere i proprio errori, perché solo chi fallisce tanto, può avere tanto successo.”

 

Per i più “smanettoni”, qui il codice sorgente dell’Apollo 11 Guidance Computer (AGC).

 

Fonti:
Wikipedia, Wired, Medium

Sara Qaddoumi
Studentessa di Ingegneria Informatica, da sempre appassionata di programmazione, astronomia e fantascienza.

    You may also like

    More in:Ingegneria

    4 Comments

    1. Molto interessante! 👍

    2. Very interesting!

    3. Brava Margaret..ma brava anche Sara..

    4. Molto interessante
      Sperò che diventerai una grande scienziata Sara
      E aggiungere le tuoi teorie con le tutte le teorie dei scenziati
      👍

    Leave a reply

    Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *