Discover more from Bit Maybe Wise
Lessons in Reliability: Margaret Hamilton's Software Engineering Approach
Mistakes will happen, eventually, no matter how much training. Margaret Hamilton knew that!
We tend not to think about reliability as part of the user experience research when developing a system, and this can go terribly wrong when not taken into consideration.
While reading the Google SRE book I came to know about Margaret Hamilton and her involvement in NASA’s Apollo program, and how reliability has been built-in to avoid a potentially catastrophic situation for the astronauts.
When dealing with space missions, there is little to no room for error. Any software glitch or failure could have catastrophic consequences for the astronauts and the entire mission.
One example of the value of Hamilton's software work occurred during the Apollo 11 mission. Approximately three minutes before Eagle's touchdown on the moon, the software over rode a command to switch the flight computer's priority processing to a radar system whose 'on' switch had been manually activated due to a faulty written operations script provided to the crew. The action by the software permitted the mission to safely continue.1
When developing any system, not just those in aerospace, it's crucial to consider reliability as part of the user experience. Mistakes will happen, eventually, no matter how much training. We are prone to error, especially while performing repetitive tasks. We ought to build systems with safeguards against ourselves.
As Margaret says, "a thorough understanding of how to operate the systems was not enough to prevent human errors"2
Unreliable systems can lead to frustration, loss of productivity, potential damage or harm, and in the worst case (when dealing with life-support systems), death. Users depend on software and systems to perform their tasks efficiently and securely. How reliable is the software depends on how easily a mishap can be undone, automatically recover, or even better, totally prevent the misbehavior.
As software engineers, reliability should be at the forefront of our minds as we build the technology that shapes the world around us. Margaret Hamilton knew that back in 1969.