Margaret Hamilton Apollo and Beyond
Margaret Hamilton Apollo and Beyond
Written by Sue Gee   
Monday, 05 September 2016
Article Index
Margaret Hamilton Apollo and Beyond
Engineering Mission Critical Software
Hamilton Technologies

Margaret Hamilton was lead developer for the team that wrote the programs that landed men on the moon and has devoted a career to error detection and recovery. She coined the term "software engineer" to gain recognition for the work done by programmers and is a role model as a woman in a male dominated environment. 




So how at 20-something did Margaret Hamilton get to be the Director of the Software Engineering Division of the MIT Instrumentation Laboratory (later the Charles Stark Draper Laboratory, CSDL)?

Luckily we have the benefit of Margaret Hamilton's NASA Home Page and many interviews in which Hamilton tells her story in her own words.



Margaret Hamilton at the MIT Museum in 2015, at the age of 79.

Photo Credit: Wired

Self-taught programmer

Born Margaret Heathfield on August 17, 1936 in Paoli, Indiana, USA, in 1958 she gained a B.A. in mathematics with a minor in philosophy from Earlham College, a Quaker liberal arts school. After graduation she postponed her own postgraduate studies in abstract maths for 3 years in order to support her husband while he worked towards his degree at Harvard Law. This led to her embarking on a career in software that was more by chance than design.

The start of this came when in 1959, having moved to Cambridge Massachusetts, she took an interim position in MIT's meteorology department with Professor Edward N Lorenz, known for the Lorenz effect, chaos theory and the butterfly effect.

The task Hamilton was given was to develop software for predicting weather using LGP-30 and the PDP-1 computers. In an interview for Futurism, Jolene Creighton asked her about this early programming experience and Hamilton explained:

The very first languages I programmed in were hexadecimal and binary. With Lorenz’s guidance, I learned how to build software (in hexadecimal) and how to take advantage of the LGP30 computer hardware to most benefit the software’s performance. Lorenz encouraged me to design and build what would today be called a ‘mini operating system’ for my applications.

Then from 1961 to 1963 Hamilton worked on SAGE (Semi Automatic Ground Environment). This was a natural transition as the SAGE Project was an extension of Project Whirlwind, the aim of which was to create a computer system that could predict weather systems and track their movements through simulators. SAGE built on this foundation to create a system for anti-aircraft air defense from potential Soviet attacks during the Cold War. The system at Lincoln Labs, hidden deep inside caverns,was huge and was the first to have realtime computers. Hamilton's role here was to write software for the XD-1, the first AN/FSQ-7 computer. 



The AN/FSQ-7

SAGE appears to have had its own initiation procedure as Hamilton later recalled:

What they used to do when you came into this organization as a beginner, was to assign you this program which nobody was able to ever figure out or get to run. When I was the beginner they gave it to me as well. And what had happened was it was tricky programming, and the person who wrote it took delight in the fact that all of his comments were in Greek and Latin. So I was assigned this program and I actually got it to work. It even printed out its answers in Latin and Greek. I was the first one to get it to work.

The SAGE project also set Hamilton on her career-long mission to discover what causes errors and how to avoid them, as she revealed in the Futurism interview:

SAGE was one of the first jumping off points where I became interested in the subject of software reliability.  When the computer crashed during the execution of your program, there was no hiding. Lights would be flashing, bells would be ringing and everyone, the developers and computer operators, would come running to find out whose program was doing something bad to the system.

The only information the computer provided to the developer for debugging his program was to light up a very large register on the console of the computer, showing the address where the program halted.

When my program was running, it always sounded like the sound of waves on a beautiful seashore, so we all referred to it as the ‘seashore program.’ Until one night at 4 am in the morning when I got a call from one of the computer operators who said something terribly wrong has happened with your program. When I asked him how he knew, he said ‘it no longer sounds like a seashore!’ Now, we had a new way to debug, using sound!

NASA's Apollo Missions 

Her efforts on the SAGE project were also what made Margaret Hamilton the obvious candidate for the position at NASA as the lead developer for Apollo flight software. And so just as she was about to resume her postgraduate study of abstract maths, and possibly put her programming skills to one side, Margaret Hamilton changed her plans.

Programming was not accorded a very high priority at the beginning of the Apollo project - in fact the documents outlining the engineering requirements of the mission didn't even include software in the budget and it was outsourced. When she heard that MIT had received a contract from NASA to develop the software for sending man to the moon she was quick to respond: 

I immediately called MIT to see if I could be involved in what sounded like the opportunity of a life time; and within hours I set up interviews with the two project managers at MIT. Both of them offered me a position on the same day as the interviews.  I did not want to hurt anyone’s feelings, so I told them to flip a coin as to which group was going to hire me.

It was Dan Lickly, who had worked on  the Polaris Guidance Computer and had been appointed to lead group which would develop the Guidance and Control methods for the Apollo Reentry vehicle, who won the toss and this determined how Hamilton's career would proceed. As Hamilton explains on her NASA Home Page:

Computer science and software engineering were not yet courses to be taught (or disciplines to be named). These were pioneering times. Learning was by "being" and "doing" on the job; as more people came on board, the more I became an "expert" and rose up through the ranks. A real world system developed in uncharted territory, one could not have asked for a better research environment to set the stage for what would come next and remain thereafter (a life long career centered around developing more advanced methods and tools for designing systems and developing software).



Last Updated ( Monday, 05 September 2016 )

RSS feed of all content
I Programmer - full contents
Copyright © 2017 All Rights Reserved.
Joomla! is Free Software released under the GNU/GPL License.