# Margaret Hamilton (scienziata)

Margaret Heafield Hamilton (Paoli, 17 agosto 1936) è un'informatica, ingegnere e imprenditrice statunitense.
È stata la direttrice del Software Engineering Division del MIT Instrumentation Laboratory, che sviluppò il software di bordo per il programma Apollo. Il team della Hamilton fu in grado di risolvere le complicazioni relative allo sbarco dell'Apollo 11 sulla Luna, garantendo il successo della missione. Nel 1986, Hamilton fondò la Hamilton Technologies, Inc. nella città di Cambridge, Massachusetts. La società nacque per sviluppare il cosiddetto Universal Systems Language basato sul paradigma di Development Before the Fact (DBTF) per la progettazione di sistemi e di software.
Ha pubblicato più di 130 articoli, atti e relazioni su vari argomenti; ha lavorato a 60 progetti ed è stata coinvolta in sei grandi programmi.

## Biografia
### Formazione

Nata a Paoli (Indiana) da Kenneth Heafield e Ruth Ester Heafield (nata Partington), si è diplomata alla Hancock High School nel 1954; successivamente si è laureata in matematica presso l'Università del Michigan e ha poi conseguito la laurea in matematica e filosofia presso l'Earlham College nel 1958. Fino alla laurea, per un breve periodo, ha insegnato matematica e francese alle scuole superiori, allo scopo di sostenere il marito nei suoi studi di primo livello a Harvard, con lo scopo di conseguire un titolo di secondo livello in un secondo momento. Si è trasferita a Boston con l'intenzione di fare ricerca nell'ambito della matematica pura alla Brandeis University. Nel 1960 ha ottenuto un impiego temporaneo al Massachusetts Institute of Technology (MIT) per sviluppare software per le previsioni meteo per i calcolatori LGP-30 e PDP-1 per un progetto del professor Edward Norton Lorenz, del dipartimento di meteorologia. A quel tempo, informatica e ingegneria del software non erano ancora discipline universitarie; al contrario, i programmatori si formavano facendo esperienza sul campo.

### Progetto SAGE

Dal 1961 al 1963, Margaret Hamilton ha lavorato al progetto Semi Automatic Ground Environment (SAGE) presso i Lincoln Labs. Il progetto SAGE era un'estensione del progetto Whirlwind, avviato dal MIT e volto allo sviluppo di un sistema informatico per le previsioni e simulazioni meteorologiche. Il SAGE era stato quindi sviluppato ad uso militare, come sistema di difesa antiaerea in previsione di possibili attacchi sovietici durante la guerra fredda. Hamilton disse in merito al suo lavoro per il progetto:
(Margaret Hamilton alla prima conferenza dell'Apollo Guidance Computer History Project)
Grazie al suo contributo al progetto, è diventata una candidata per la posizione di capo sviluppo per il software di volo del programma Apollo alla NASA.

## NASA

Hamilton entrò quindi al Charles Stark Draper Laboratory al MIT, che all'epoca stava lavorando alle missioni Apollo, dove divenne infine direttrice e supervisore dello sviluppo software per i programmi Apollo e Skylab. Alla NASA, il team diretto da Hamilton era responsabile dello sviluppo del software che avrebbe guidato le capsule del programma Apollo nella navigazione e nell'atterraggio sulla Luna, nonché le sue molteplici varianti usate in altri progetti successivi, tra i quali Skylab.

### Apollo 11

Le scelte progettuali del gruppo di Hamilton e del sistema operativo di J. Halcombe Laning si rivelarono cruciali e, in uno dei momenti critici durante lo svolgimento della missione Apollo 11, ne evitarono l'abbandono. Tre minuti prima dell'atterraggio del lander sulla superficie lunare, scattarono diversi allarmi in quanto il computer era sovraccarico di dati in ingresso, a causa del fatto che il sistema radar di rendezvous (non necessario in fase di atterraggio) stava aggiornando un contatore, impegnando il computer in cycle stealing. Tuttavia, grazie allo scheduler pre-emptive a priorità fissa, i processi impegnati nell'atterraggio, a priorità maggiore, interruppero i processi a priorità minore. Il difetto è stato attribuito poi ad una checklist errata.
(Margaret Hamilton, Director of Apollo Flight Computer Programming MIT Draper Laboratory, Cambridge, Massachusetts, "Computer Got Loaded", Letter to Datamation, March 1, 1971)

## Business

Dal 1976 al 1984 Hamilton è stata CEO di una società da lei cofondata, chiamata Higher Order Software (HOS), che si occupava di prevenzione e resistenza agli errori software, sulla base della sua esperienza maturata al MIT. La società ha sviluppato un prodotto chiamato USE.IT, basato su metodologia HOS.
Nel 1986 ha fondato ed è divenuta CEO della Hamilton Technologies, a Cambridge (Massachusetts). La società è nata sulla base del Universal Systems Language (USL) e del suo ambiente automatizzato, 001 Tool Suite, basato sul paradigma di progettazione e sviluppo software da lei sviluppato, development before the fact (DBTF).

## Eredità

Hamilton ha reso popolare l'espressione "ingegneria del software" (software engineering), precedentemente coniato da Anthony Oettinger. All'epoca l'ingegneria del software non era considerata con la stessa serietà di altre discipline ingegneristiche e non era vista come una scienza. Lei usava l'espressione "ingegneria del software" per distinzione rispetto all'ingegneria dell'hardware, e con il tempo l'ingegneria del software ha acquisito la sua dignità scientifica. Nel suo lavoro al MIT ha preso parte alla definizione dei principi fondamentali della programmazione, lavorando sui primi computer mobili. Il suo contributo va oltre il semplice successo delle missioni lunari, ma insieme a tante colleghe ingegnere rappresenta una figura simbolica nella conquista tuttora in corso della parità di genere nelle discipline STEM.

## Vita privata

Conobbe suo marito, James Cox Hamilton, al Earlham College. Si sposarono verso la fine degli anni cinquanta, dopo aver conseguito il bachelor a Heafield. Ebbero una figlia di nome Lauren che, in seguito, sposò il miliardario James Cox Chambers. Hamilton non ebbe problemi nel proseguimento della sua carriera alla NASA durante la maternità, e nel fine settimana spesso portava Lauren nei laboratori e passava del tempo con lei mentre lavorava alla programmazione del software Apollo. In seguito divorziò dal marito.

## Riconoscimenti

* Nel 1986 ha ricevuto l'Augusta Ada Lovelace Award dalla Association for Women in Computing.
* Nel 2003 ha ricevuto il NASA Exceptional Space Act Award per contributi scientifici e tecnici. Il premio includeva una somma pari a 37 200 USD, la massima somma elargita in premio dalla NASA ad un singolo individuo in tutta la sua storia.
* Nel 2009 ha ricevuto dal Earlham College l'Outstanding Alumni Award.
* Nel 2016, il 22 novembre, ha ricevuto dal Presidente degli Stati Uniti Barack Obama la Medaglia presidenziale della libertà, la più alta onorificenza che possa essere data ad un civile americano, per il suo fondamentale contributo nelle missioni Apollo.

## Pubblicazioni

* M. Hamilton (1994), "Inside Development Before the Fact," cover story, Special Editorial Supplement, 8ES-24ES. Electronic Design, aprile 1994.
* M. Hamilton (1994), "001: A Full Life Cycle Systems Engineering and Software Development Environment," cover story, Special Editorial Supplement, 22ES-30ES. Electronic Design, giugno 1994.
* M. Hamilton, Hackler, W. R.. (2004), Deeply Integrated Guidance Navigation Unit (DI-GNU) Common Software Architecture Principles (revised dec-29-04), DAAAE30-02-D-1020 and DAAB07-98-D-H502/0180, Picatinny Arsenal, NJ, 2003-2004.
* M. Hamilton and W. R. Hackler (2007), "Universal Systems Language for Preventative Systems Engineering," Proc. 5th Ann. Conf. Systems Eng. Res. (CSER), Stevens Institute of Technology, marzo 2007, paper #36.
* M. Hamilton and W. R. Hackler (2007), "A Formal Universal Systems Semantics for SysML", 17th Annual International Symposium, INCOSE 2007, San Diego, CA, giugno 2007.
* M. Hamilton and W. R. Hackler (2008), "Universal Systems Language: Lessons Learned from Apollo", IEEE Computer, dicembre 2008.