Professional Documents
Culture Documents
Margaret Hamilton Takes Software Engineering To The Moon and Beyond
Margaret Hamilton Takes Software Engineering To The Moon and Beyond
If you were to create a short list of women who influenced software engineering, one of the
first picks would be Margaret Hamilton. The Apollo 11 source code lists her title as
“PROGRAMMING LEADER”. Today that title would probably be something along the line of
“Lead software engineer”.
Margaret Hamilton was born in rural Indiana in 1936. Her father was a philosopher and poet,
who, along with grandfather, encouraged her love of math and sciences. She studied
mathematics with a minor in philosophy, earning her BA from Earlham College in 1956. While
at Earlham, her plan to continue on to grad school was delayed as she supported her
husband working on his own degree from Harvard. Margaret took a job at MIT, working
under Professor Edward Norton Lorenz on a computer program to predict the weather.
Margaret cut her teeth on the desk-sized LGP-30 computer in Norton’s office.
Hamilton soon moved on to the SAGE program, writing software which would monitor radar
data for incoming Russian bombers. Her work on SAGE put Margaret in the perfect position
to jump to the new Apollo navigation software team.
The Apollo guidance computer software team was designed at MIT, with manufacturing done
at Raytheon. To say this was a huge software project for the time would be an
understatement. By 1968, over 350 engineers were working on software. 1400 man-years of
software engineering were logged before Apollo 11 touched down on the lunar surface, and
the project was lead by Margaret Hamilton.
FORGET IT
Margaret was still considered a beginner programmer when she started work on the Apollo
program. As you might expect, she was given a very low priority task: write software that
would run in the event of an abort. This was software that would be used for one of the early
tests, so no one expected the abort code to be run. Margaret even named the program “forget
it”. Margaret was an instant expert, called into NASA to explain how her software worked, and
answer questions.
Eventually, Margaret became the lead programmer for the guidance computer. She was not a
hands-off manager though — she was very much in the trenches, working to get men to the
moon and back again. By this time she was also a working parent. During the many late night
and weekend work sessions, she would bring her daughter Lauren in. Margaret would run
tests, and “play astronaut” and Lauren would play along with her.
P01 PROGRAM NOTE
During one test session, Lauren entered something at the controls. The guidance computer
immediately crashed, bringing the whole system down. Margaret investigated and found that
Lauren had inadvertently loaded up the P01 pre-launch program while the command module
was in flight. If an astronaut did this during a mission, it would be disastrous, as the P01
program would erase all the computers navigation data. The ship would be flying blind.
During Apollo 8, Astronaut Jim Lovell proved NASA wrong by accidentally loading up P01 on
the 5th day of the mission. The system crashed, and the navigation data was lost. Margaret
and her team were called in to save the day. They spent eight hours studying the software
and verifying a method of recovery. It had to work, and it had work the first time. Following
Margaret’s instructions, NASA uploaded new navigation coefficients and the mission was able
to continue.
Even though software was driving the Apollo program, it still wasn’t considered a science – at
least not by the hardware or mechanical engineers. Programmers were held to a lower
regard. To combat this, Margaret coined the term “software engineering”. Many of her co-
workers considered it a joke at first. Of course, time has shown that she was absolutely right.
Investigations later showed that the 1201 and 1202 alarms were caused by a checklist error.
The checklists instructed the astronauts to turn on their rendezvous radar during the landing
phase of the mission. The rendezvous radar wasn’t needed for landing, yet it since it was on,
it was still interrupting the guidance computer many times each second. These interruptions
would cause the computer to run out of resources, and display one of Margaret’s alarms. If
the software hadn’t been written and tested so well, the load of from the extra radar data
could have caused the LEM to abort the mission, or worse, crash into the moon — stranding
or killing the astronauts onboard.
AFTER APOLLO
Margaret continued working at MIT on NASA programs well after the Apollo missions. She
worked on Skylab as well as the first revisions of the software for the space shuttle.
Eventually, though, she left to start her own company.
Today Margaret is CEO (and founder) of Hamilton Technologies, Inc, where she is still
creating tools and systems to make software safer and more bug-free.
Margaret Hamilton holds a LEGO minifig of herself
For many years Margaret was well known within the inner circle of NASA and MIT engineers
and scientists. However, she wasn’t known to the general public. An image of her standing
next to a stack of printouts taller than her — the entire source of the Apollo guidance
computer changed all that. Margaret is now deservedly known as one of the first women in
software engineering and has been honored with a Presidential medal of freedom, as well as
being included in the Women of NASA LEGO set depicting her famous image.