Margaret Heafield Hamilton is an American computer scientist, systems engineer, and business owner. She is credited with coining the term “software engineering”.
It might come as a surprise to most of today’s software engineers to learn that the founder of their discipline is a woman. Indeed, Margaret Hamilton, renowned mathematician and computer science pioneer, is credited with having coined the term software engineering while developing the guidance and navigation system for the Apollo spacecraft as head of the Software Engineering Division of the MIT Instrumentation Laboratory.
Hamilton explains why she chose to call it software engineering:
“I fought to bring the software legitimacy so that it—and those building it—would be given its due respect and thus I began to use the term ‘software engineering’ to distinguish it from hardware and other kinds of engineering, yet treat each type of engineering as part of the overall systems engineering process. 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,” she said in a recent interview in a Spanish magazine.
While software was not an important part of the Apollo program in the beginning, it became clear by 1965—when Hamilton came on board—that software was going to be integral in putting a man on the moon.
From her fledgling days with NASA to her current standing as a software engineering legend and luminary, Margaret Hamilton helped pave the way for an industry—now worth well over a trillion dollars—to change the world forever.
While working at NASA, during her time sending a man to the moon, Hamilton was tougher on herself than any bureaucrat could be.
“The space mission software had to be man-rated. Not only did it have to work, it had to work the first time. Not only did the software itself have to be ultra-reliable, it needed to be able to perform error detection and recovery in real time. Our languages dared us to make the most subtle of errors. We were on our own to come up with rules for building software. What we learned from the errors was full of surprises,” Hamilton said.
Right before Apollo 11 was about to land on the moon, the software program overrode normal operations to let the astronauts know something was wrong.
Problems began when the computer was overloaded with commands from the rendezvous radar and the landing system, requiring more processing power than the computer could handle. With the radar running at 13% and the landing system at 90%, something had to give. Fortunately, Hamilton had programmed the computer to prioritize tasks according to importance not sequence. When the priority displays posed a go/no-go decision to the astronauts—to land or not land on the moon—the astronauts said “Go.”
And the rest is history.
Hamilton continued to work on NASA’s remaining Apollo missions as well as SkyLab, America’s first space station. Her rigorously specified design methods have become the foundation of many modern software engineering techniques today.
She later received the NASA Exceptional Space Act Award (2003) and the Presidential Medal of Freedom from Barack Obama (2016).
- Margaret Hamilton in an Apollo Command Module. Photo credit: NASA
- Margaret Hamilton, lead software engineer of the Apollo Project, stands next to a huge stack of code written by her and her team, in 1969.