Her Code Got Humans on the Moon – And Invented Software Itself – Robert McMillan
The following article on Margaret Hamilton’s involvement in the creation of the code for the Apollo Mission was an interesting read, not only that she serves as “the mother” of software engineering, but also that she programmed the software while predicting the possible error that the “higher-ups” thought was insignificant. The mindset of Hamilton’s higher-ups at the time represent what most engineers presume – the users will not make any mistakes. However, just as Hamilton created a supplement code to prevent the crash from using P01, it is necessary to think of all the possible interaction that can happen and be prepared for the implications. In the worst case, the crash could have led all the astronauts to die out in space.
The following idea was implemented in a recent project that I did in 24X event in early March, where I have designed a hypertext web application. After the product was completed and in the process of testing, I have realized that I would press the “back” button on the browser when I felt that I have made a mistake – and this led to a crash. Even though some people believed that I was thinking too much, I have added a supplement sets of code to prevent from going back. And, at the day of the presentation, I have witnessed many attendees trying to go back to revert their choices.
The software we design does not get to that point severity, but it still holds the point that as programmers and designers, we should not expect the users to exactly follow the path that is in our heads. And, this means that we need to think about all the possible unwanted directions and create either a preventive measure in the code or something that will place the user back into a forward direction, not backwards or crash. So, always debug, debug, and debug!