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 with the Spanish newspaper El Pais.
Recently, Hamilton was a featured keynote speaker at the 40th International Conference on Software Engineering held in Gothenburg, Sweden, where on May 31 she delivered her address “The Language as a Software Engineer.”
In the early days, according to Hamilton, no one really knew what they were doing. Software was a wilderness. She wanted it to be respected as any other realm of engineering.
“There was no field for software engineering,” said Hamilton, “You were on your own. Knowledge, or lack thereof, was passed down from person to person.”
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.
“Systems simulations were a mix of hardware and digital simulations of every—and all aspects of—an Apollo mission which included man-in-the-loop simulations, making sure that a complete mission from start to finish would behave exactly as expected,” Hamilton said.
In the beginning, NASA gave Hamilton and her team carte blanche. They were free to develop their software programs unimpeded. But then things changed.
“We evolved our ‘software engineering’ rules with each new relevant discovery,” said Hamilton, “while top management rules from NASA went from complete freedom to bureaucratic overkill.” (She was once asked how researchers could overcome such suffocating bureaucracy. Hamilton said, “I have no answer to that.”)
But 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.
Her zeal paid off.
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.
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.
(At the 1 minute, 20 second mark in the above video, President Obama describes Hamilton’s contribution to the Apollo program and the world of technology.)
Highlights of Margaret Hamilton at ICSE 2018
Margaret Hamilton gives her keynote address at the 40th International Conference on Software Engineering held in Gothenburg, Sweden.
Hamilton onstage at the 40th International Conference on Software Engineering.
Hamilton responds to questions during the Q&A. One attendee asked Hamilton how she would advise researchers to combat bureacracy, to which she replied with a grin, “I have no answer to that.”
Nenad Medvidovic, a conference organizer and a professor of computer science at the University of Southern California, gives Hamilton a bag of Swedish chocolates at the conclusion of her speech.
Research by Margaret Hamilton in the Computer Society Digital Library: Universal Systems Language: Lessons Learned from Apollo