Margaret Hamilton · Apollo flight software
When the computer fails, what should it do first?
That time, that place
On 20 July 1969, during the descent to the Moon, the computer threw an alarm: 1202.
Mission control had seconds to decide whether to abort.
Why this question
The cause: the rendezvous radar had been left on, flooding the computer with calculations it did not need, and capacity overflowed.
An ordinary machine would have hung or scrambled. This one did not.
Margaret Hamilton's team had written priorities into the software. On overflow it drops the less important work, does the calculations landing requires, and reports what happened.
What was found
The landing continued, because the computer decided for itself what to drop.
While doing this work Hamilton coined the term software engineering. Writing programs was not then considered a discipline, and she said people laughed at the phrase.
What she pushed for was not code that works but code prepared for things going wrong — not a program without errors but a program that survives them.
Every system we use now stands on that way of thinking.
Programs were written to work as expected
Under overflow, the system shed work by priority and completed the landing
Software engineering became a discipline, and fault tolerance a standard