Skip to content
Science, Maths & Technology
Author:

Margaret Hamilton: Spaceship Programmer and Software Pioneer

Updated Wednesday 12th June 2019

Without the work of the lead Apollo flight software designer, Margaret Hamilton, the Eagle would not have landed on the Moon.

Margaret Hamilton images - space pioneer Copyright free image Icon Copyright free: Public Domain Image 1: Photo from NASA, 1989. Margaret Heafield Hamilton (17 Aug 1936-present) was born in Paoli, Indiana (Welch & Lamphier, 2019). After high school she studied mathematics at the University of Michigan and graduated with a BA in mathematics and a minor in philosophy from Earlham College, Richmond, Indiana in 1958. In 1959 she began work in the meteorology department at the Massachusetts Institute of Technology (MIT) for Professor Edward N. Lorenz, the pioneer of chaos theory, programming early computers to predict weather. She had to learn her trade hands-on as no taught software courses existed and among her credits, she promoted the term “software engineering” to provide legitimacy to the science and set it on a par with other types of engineering (Cameron 2018).

Between 1961 and 1963 Hamilton worked as a programmer on the US Semi-Automatic Ground Environment (SAGE) air defence system at MIT’s Lincoln Lab (Mindell 2008) and this is where she became interested in and learned much about the reliability of software (Spicer 2017), being able to make a previously inoperative radar system actually work. As Hamilton said: “I was and still am very interested in what causes errors and how to avoid them throughout. That was one of my very first experiences in this regard… from day one, it’s been a fascination - the subject of errors…” (Hamilton 2001).

Margaret Hamilton images - space pioneer Copyright free image Icon Copyright free: Public Domain Margaret and her navigation software. It was this fascination and her expertise in systems programming that later made Margaret Hamilton the perfect candidate for the position of lead Apollo flight software designer. Rather than return to study for her PhD at Brandeis University, Massachusetts, she joined MIT’s Instrumentation Lab (now the Charles Stark Draper Laboratory), which was at that point working on the Apollo space mission (Creighton 2016), and in the summer of 1968 she began writing software for the program.

Her programming skills led to her promotion to head of the Apollo Software Engineering Division, where she and her colleagues wrote and developed code for the guidance and control systems of the in-flight command and lunar modules of the Apollo missions (McMillan 2015; Spicer 2017). In the process, Hamilton and her team established the nuts and bolts of modern software engineering, resulting in the creation of what she termed “ultra-reliable software” for the Apollo 11 mission. This included priority displays in emergency situations, where the software alerted the astronauts and allowed them to reconfigure systems in realtime.

Hamilton also set up firm constraints on components and subsystems engineering, debugged and tested everything before assembly and ran systems level simulations of every imaginable condition to identify potential problems; only then would she release the code (Rayl 2008). 

Hamilton focussed on system error detection and data recovery in a computer crash at a time when it was very difficult and laborious to identify and fix errors (Ceruzzi 2016). Her work was crucial as it turned out: just minutes before touchdown of Apollo 11 on July 20, 1969, a documentation error resulted in computer overload. Hamilton’s software recognised the error situation and rejected extraneous tasks to re-establish its priority – landing Eagle on the Sea of Tranquillity (Hancock 2014). Hamilton had already fought hard (and lost) to include user-error-checking in the code, an omission that almost led to the failure of Apollo 8 (Mindell, 2008).

Margaret in the Apollo Command Module (NASA).

Hamilton worked on the software for all the Apollo manned, and a few of the unmanned missions, Skylab on-board flight software and initial system software requirements for the Space Shuttle (Katz 2010, Hancock 2014, Spicer 2017). Her rigorous work during the Apollo missions that resulted in the creation of the foundations of modern software engineering were to become the bases for her Universal Systems Language (001AXES) and Development Before the Fact (DBTF) formal systems theory (Spicer 2017).

In 1976 Margaret Hamilton co-founded Higher Order Software where she applied her skilled methodology to defence projects. In 1986, she left HOS to found Hamilton Technologies, to accelerate the evolution software technology and to direct her advanced systems to complex projects for commercial and defence purposes.

Margaret Hamilton has published over 130 papers, proceedings and reports and has been involved in 60 projects and in 6 major programmes (Katz 2010). She has been the recipient of numerous awards and fellowships for her outstanding achievements. In a conference presentation in 2004, Hamilton said of software engineering: “Apollo was and still continues to be the catalyst for how it got started and how it continues to evolve.” (Hamilton 2004).

 

References

Lincoln Lab, MIT: https://www.ll.mit.edu/

Lorenz Centre, MIT: http://lorenz.mit.edu/

Charles Stark Draper Laboratory, MIT: https://www.draper.com/

Cameron, Lori (2018) What to Know About the Scientist Who Invented the Term “Software Engineering” . IEEE Computer Society. Ref: https://www.computer.org/publications/tech-news/events/what-to-know-about-the-scientist-who-invented-the-term-software-engineering Accessed 28 May 2019

Ceruzzi, Paul (2016) The “Rope Mother” Margaret Hamilton. March 11, 2016, Smithsonian National Air and Space Museum. Ref: https://airandspace.si.edu/stories/editorial/rope-mother-margaret-hamilton Accessed 27 May 2019

Creighton, Jolene (2016) Margaret Hamilton: The Untold Story of the Woman Who Took Us to the Moon. Futurism July 20, 2016. Ref: https://futurism.com/margaret-hamilton-the-untold-story-of-the-woman-who-took-us-to-the-moon. Accessed 28 May 2019

Hamilton, Margaret (2001) Margaret Hamilton’s introduction. Apollo Guidance Computer History Project First conference July 27, 2001. Ref: https://authors.library.caltech.edu/5456/1/hrst.mit.edu/hrs/apollo/public/conference1/hamilton-intro.htm. Accessed 28 May 2019

Hamilton, Margaret (2004) The Heart and Soul of Apollo: Doing it Right the First Time. Presented at the MAPLD International Conference, September 9, 2004. Ref: http://klabs.org/mapld04/abstracts/hamilton_a.html Accessed 26 May 2019

Hancock, Jaime Rubio (2014) Margaret Hamilton, la pionera de la programación que llevó el Apolo a la Luna. Verne Dec 10, 2014. Ref: https://verne.elpais.com/verne/2014/12/11/articulo/1418314336_993353.html  Accessed 26 May 2019

Katz, Richard (2010) About Margaret Hamilton. NASA Office of Logic Design. Ref: http://klabs.org/home_page/hamilton.htm Accessed 27 May 2019.

McMillan, Robert (2015). Her code got humans on the moon – and invented software itself. Wired, October 13 2015. Ref: https://www.wired.com/2015/10/margaret-hamilton-nasa-apollo/ Accessed 27 May 2019

Mindell, David A (2008) Digital Apollo: Human and Machine in Spaceflight. MIT Press. ISBN: 9780262134972, 376 pp

Spicer, Dag (2017) 2017 CHM Fellow Margaret Hamilton. Computer History Museum, Ref: https://www.computerhistory.org/atchm/2017-chm-fellow-margaret-hamilton/  Accessed 27 May 2019.

Rayl, AJS (2008) NASA Engineers and Scientists-Transforming Dreams Into Reality. Ref: https://www.nasa.gov/50th/50th_magazine/scientists.html  Accessed 28 May 2019

Welch, Rosanne & Lamphier, Peg A (Eds) (2019) Technical Innovation in American History: An Encyclopedia of Science and Technology Vol 3, p 62. ABC-CLIO ISBN 978-1-61069-094-2. Ref: https://books.google.co.uk/books?id=aWGHDwAAQBAJ&pg=RA2-PA62&redir_esc=y#v=onepage&q&f=false Accessed 26 May 2019


 

Become

Author

Ratings

Share

Related content (tags)

Copyright information

For further information, take a look at our frequently asked questions which may give you the support you need.

Have a question?