Lessons in Software Development From the Apollo Moon Missions.

Monday was the 40th anniversary of the Apollo 11 lunar landing. The story of the Apollo program is an historic and inspirational one, but it’s also relevant to software development.
To understand the significance of the Apollo program from an engineering standpoint, we must begin at the beginning…
Gus Grissom, Ed White and Roger B. Chaffee were killed on the launch pad when the Apollo 1 capsule burst into flames just prior to the launch test. What happened? Well, according to Wikipedia (I know, far from an unimpeachable source, but bear with me here):
“Although the ignition source of the fire was never conclusively identified, the astronauts’ deaths were attributed to a wide range of lethal design hazards in the early Apollo command module. Among these were the use of a high-pressure 100 percent-oxygen atmosphere for the test, wiring and plumbing flaws, flammable materials in the cockpit (such as Velcro), an inward-opening hatch that would not open in this kind of an emergency and the flight suits worn by the astronauts.”
In short, no one knows for sure what specifically caused the fire, but everyone agrees that some fundamental errors led to the conditions (whatever they ultimately were).
what really went wrong was at the planning and design stage. NASA was in such a rush to make up lost time in the space race with the USSR, that they got cocky after early successes, cut corners and went full bore toward a fully manned, Apollo capsule before they were really ready.
The precursor missions to Apollo were the Mercury and Gemini projects. These projects had highly specific mission statements and each was directed toward a discrete piece of the overall lunar landing mission. Project Mercury was directed toward getting a man into space, and back again. The goal of project Gemini was to perform extra-vehicular activity (pre-cursor to space walk), and docking maneuvers.
NASA began the mission to the moon with an iterative approach, but switch to a more waterfall like approach where they tried to construct a whole new capsule module from scratch, with the intent of landing on the moon and returning. They used the knowledge gained from the earlier Mercury and Gemini projects, but constructed new - and untested - equipment for Apollo.
The parallel to software development is using an iterative approach to develop phase I of a project, only to throw it away and start over on phase II. The whole purpose of the iterative approach is to focus on small, achievable parts of a greater whole to maintain momentum but also to limit what must be tested and hence limit (theoretically) the universe of possible bugs.
I think the 2 most important software development lessons we can learn from the Mercury, Gemini and Apollo missions are:
- To be successful, have clear and concise mission objectives (goals).
- Start small, and build on each success.
This is what made the Gemini and Mercury missions so successful, and ultimately made Apollo 11 possible and it will drastically improve the odds of your next software project being a success as well.
Related Posts - IE7 WebControl TreeView line gap in quirks mode. I've been writing a subclass of the MS Webcontrol.TreeView control for one of our Web Applications at work. I figured this would be a fairly easy task, since I only...
- The 3 Most Important Questions You Should Ask About Each Bug You Find. I stumbled upon (quite literally) an article by Tom Van Vleck titled Three Questions About Each Bug You Find today, and thought I would share it: "The key idea behind...
- How To Control Disk Thrash From ccmexec.exe (SMS Agent). Today started like any other day at work. I sat down, logged into my PC and was greeted by the thrashing sound of my hard drive. I've come to realize...
- Window.scrollTo Fails Under OVERFLOW-Y: auto Style. I was trying to subclass a Web Treeview control for my own evil purposes and ran into a sticky problem - scrollTo not working! Just for background, my evil purpose...
- Free Antivirus Recommendations (Protect Yourself Online With Free AntiVirus Software). I got tired of shelling out $40+ a year for antivirus protection long ago. Aside form the price, what really bugged me was the bloat! It became more and more...
Related Websites - Rookie and Beginner Woodwork Projects Just like with many other types of jobs, when it comes to woodwork projects, planning is of the utmost level of importance. Cutting wood and working with wood is always going to demand that you utilize careful planning and a step by step approach toward reaching the ultimate goal for......
- How Home Improvement Software Can Help You Out If you are interested in home improvement these days, you also need to be interested in what the modern world can do for you as far as home improvement is concerned. There is no type of handyman in today’s world that does not use the conveniences of modern technology to......
- Advantages of software developers in freelance contract programming In any reputed software development firm the software developers are usually very experienced and expertise, but only in their own modules. In a recent survey it has been found that software developers do not wish to work in different modules in the same or a different project. As these developers......
- City of Dreams Suffers a US$600 Million Cost Overrun As expected costs of the City of Dreams casino project continue to blowout, now by a whopping $US600 million! The estimated outlay is now $US2.1 billion compared with the previously reported $US1.85 billion in June and $US1.5 billion last December. We can foresee further cost overruns happening prior to the......
- NetBeans and Eclipse, the developers best friends. Linux or Windows user, this is for everyone (even Mac OS X and Solaris), NetBeans and Eclipse. These two editors are both very good. Eclipse The Eclipse Project was originally created by IBM in November 2001 and supported by a consortium of software vendors. The Eclipse Foundation was created in......






