Thursday, August 25, 2016

Throwback Thursday: Margaret Hamilton

Today's #ThrowbackThursday brought to you by Margaret Hamilton, the director of the team responsible for implementing the on-board guidance software required to navigate and land on the Moon during the Apollo 11 mission (the first spaceflight that landed humans on the Moon, aka Neil Armstrong and Buzz Aldrin).

The picture below shows her standing besides the Apollo Guidance Computer code listing, contained in code sheet binders.

I've always liked this picture, mostly due to the expression on her face. A combination of relief, confidence, and pride in a job well done!


Margaret Hamilton was born August 17, 1936, and is still alive today. She was the Director of the Software Engineering Division of the MIT Instrumentation Laboratory, which developed the Apollo Guidance Computer, the on-board flight software for the Apollo space program. Since 1986, she has been the founder and CEO of Hamilton Technologies, Inc.

With a B.A. in mathematics from Earlham College, Hamilton took an interim position at MIT to work on the SAGE Project. The goal of SAGE was to create a computer system that could predict weather systems and track their movements through simulators. She eventually joined the Charles Stark Draper Laboratory at MIT and became the director and supervisor of software programming for the Apollo space mission. At that time, Hamilton noted, computer science courses were uncommon and software engineering courses did not exist, so the programmers had to learn on the job.

A topic of interest to Hamilton is error detection and recovery. The Apollo team learned first-hand that, just because you have a note saying "Do not select PO1 (pre-launch) mid course", does not prevent human error from selecting PO1 mid course. So she became very interested in why errors took place, whether they could be avoided, and how to recover from them. She credits her work on the Apollo Guidance Computer and its asynchronous executive as a foundation that provided the means for her to design systems software that include error detection and recovery mechanisms.

Hamilton described for MIT News in 2009 her contributions to the Apollo software:

"From my own perspective, the software experience itself (designing it, developing it, evolving it, watching it perform and learning from it for future systems) was at least as exciting as the events surrounding the mission. ... There was no second chance. We knew that. We took our work seriously, many of us beginning this journey while still in our 20s. Coming up with solutions and new ideas was an adventure. Dedication and commitment were a given. Mutual respect was across the board. Because software was a mystery, a black box, upper management gave us total freedom and trust. We had to find a way and we did. Looking back, we were the luckiest people in the world; there was no choice but to be pioneers."

Sounds exciting! I personally like nothing better than a project where the desired result is known, but the method of doing so is entirely up to me to figure out. There's no better feeling than when it eventually works!

Finally, Margaret Hamilton is actually credited with coining the term "software engineering", as she describes:

"I began to use the term 'software engineering' to distinguish it from hardware and other kinds of engineering. When I first started using this phrase, it was considered to be quite amusing. It was an ongoing joke for a long time. They liked to kid me about my radical ideas. Software eventually and necessarily gained the same respect as any other discipline."


References / Further Reading:

No comments:

Post a Comment