On August 17, 1936, American computer scientist, systems engineer, and business owner Margaret Hamilton was born. Hamilton was Director of the Software Engineering Division of the MIT Instrumentation Laboratory, which developed on-board flight software for the Apollo space program.
A Software Developer at MIT
Margaret Elaine Heafield was born in Paoli, Indiana, USA, to Kenneth Heafield and Ruth Esther Heafield. Hamilton graduated from Hancock High School in 1954 and received her B.Sc. in Mathematics from Earlham College in 1958. There she met her later husband, the lawyer James Cox Hamilton. She moved to Massachusetts with the intention of graduating from Brandeis University, but instead took a job as a software developer at MIT.
In the Meteorology Department
In the summer of 1959, Hamilton began working for Edward Norton Lorenz,[1] in the meteorology department at MIT. She developed software for predicting weather, programming on the LGP-30 and the PDP-1 computers at Marvin Minsky‘s Project MAC.[2] Her work contributed to Lorenz’s publications on chaos theory. At the time, computer science and software engineering were not yet established disciplines; instead, programmers learned on the job with hands-on experience. She moved on to another project in the summer of 1961, and hired and trained Ellen Fetter as her replacement.
The SAGE Project
From 1961 to 1963, Hamilton worked on the Semi-Automatic Ground Environment (SAGE) Project at Lincoln Lab, where she was one of the programmers who wrote software for the prototype AN/FSQ-7 computer (the XD-1), used by the U.S. Air Force to search for possibly unfriendly aircraft. She also wrote software for a satellite tracking project at the Air Force Cambridge Research Laboratories. The SAGE Project was an extension of Project Whirlwind, started by the Massachusetts Institute of Technology (MIT), to create a computer system that could predict weather systems and track their movements using simulators. SAGE was soon developed for military use in anti-aircraft air defense from potential Soviet attacks during the Cold War.
Draper Laboratory and Apollo
Hamilton then joined the Charles Stark Draper Laboratory at MIT, which worked on the Apollo space mission. Hamilton was responsible for developing the on-board flight software necessary to navigate to and from the Moon and to land on the Moon. The software was then used in other space programs, including the Skylab space station,[3] where it gained practical experience in computer science and software development before training was provided. She developed innovative approaches in the areas of system architecture, software development, business and process modeling, error avoidance of development paradigms, formal system and software modeling languages, system-oriented approaches to system modeling and development, automated runtime environments, methods to maximize the reliability and reusability of software, Problem analysis, verifying the correctness of language properties, techniques for open architectures of stable systems, full lifecycle automation, quality assurance, seamless integration, distributed process systems, fault detection and resolution, human-machine interfaces, operating systems, end-to-end test techniques and managing software throughout its lifecycle. On this basis, she developed concepts for asynchronous software, priority-driven task processing and man-in-the-loop decision making, which is the basis of modern, highly reliable software architecture.
How to Avoid Apollo 11 to Crash
In 1969, Hamilton and her team at MIT prevented the Apollo 11 moon landing from aborting, and three minutes before the lunar module reached the lunar surface, several computer warnings were triggered.[4] The computer was overloaded with incoming data because the Rendezvous Radar system, which was not required for landing, updated a counter, consuming unnecessary computing time. Due to the stable architecture (Fixed-priority pre-emptive scheduling), the computer was still able to continue working: The Apollo flight software was developed in such a way that important tasks, such as those critical for landing, could be interrupted. Originally, the problem was attributed to a faulty checklist and the unplanned activation of the radar by the crew. A new investigation in 2005 concluded that an error in the design of the Rendezvous radar hardware provided the computer with incorrect information even though it was in stand-by mode.
Development before the Fact
Hamilton popularized the term software engineering and details how she came to make up the term:
“When I first came up with the term, no one had heard of it before, at least in our world. It was an ongoing joke for a long time. They liked to kid me about my radical ideas. It was a memorable day when one of the most respected hardware gurus explained to everyone in a meeting that he agreed with me that the process of building software should also be considered an engineering discipline, just like with hardware. Not because of his acceptance of the new ‘term’ per se, but because we had earned his and the acceptance of the others in the room as being in an engineering field in its own right.” [5]
When Hamilton started using the term “software engineering” during the early Apollo missions, software development was not taken seriously compared to other engineering, nor was it regarded as a science. In this area she developed concepts for asynchronous software, priority-driven execution, end-to-end testing, and man-in-the-loop decision making, which later became the basis of particularly reliable software architecture through priority indications. From 1976 to 1984, Hamilton was Managing Director of Higher Order Software (HOS), a company she co-founded. In 1986, she founded Hamilton Technologies, Inc. in Cambridge, Massachusetts and served as the company’s chief executive officer. The company’s work was based on Universal Systems Language, which is based on its “Development Before The Fact” paradigm for system and software design.
Later Life
In 1986 Hamilton was awarded the Augusta Ada Lovelace Award by the Association of Women in Computing. In 2003 they were awarded the NASA Exceptional Space Act Award for their scientific and technical contribution to the success of the Apollo programme. In November 2016, her President Barack Obama awarded her the Presidential Medal of Freedom, and in 2017 she became a Fellow of the Computer History Museum.
Margaret Hamilton, ICSE 2018 – Plenary Sessions [9]
References and Further Reading:
- [1] Edward Lorenz and the Butterfly Effect, SciHi Blog
- [2] Marvin Minsky and Artificial Neural Networks, SciHi Blog
- [3] The First US Space Station Skylab, SciHi Blog
- [4] The Eagle has Landed – The First Man on the Moon, SciHi Blog
- [5] Snyder, Lawrence and Henry, Ray Laura, “Fluency with Information Technology“, Pearson, ISBN 0-13-444872-3
- [6] Margaret Hamilton ’58 — Presidential Medal of Freedom Recipient: Earlham College profile
- [7] “Margaret Hamilton: 2017 Fellow Biography”. Computer History Museum
- [8] Margaret Hamilton at Wikidata
- [9] Margaret Hamilton, ICSE 2018 – Plenary Sessions, ICSE2018 @ youtube
- [10] Timeline of Women Computer Scientists, via DBpedia and Wikidata