in

ASP.NET Weblogs

The DreamLand Express - Charles Oppermann's Software Blog

Commentary on software design, development and management

Software Quality, Then and Now

Long before I was creator of software products, I was a space geek. When Apollo 11 landed on the moon, my parents said their three-year old boy was fascinated. I closely followed every phase of the Apollo-Soyuz Test Project in 1975. In 1981, two friends and I petitioned NASA to allow us to "cover" the first launch of the space shuttle Columbia.

It was right around 1980 that my interest in computers and software blossomed. Later at Microsoft, I came to realize how important quality and engineering discipline is to successful products.

For the past few weeks, I have been reading Digital Apollo: Human and Machine in Spaceflight (MIT Press) by David A. Mindell. This excellent book details the development of the computer that flew on each Apollo mission. I highly recommend it. Of particular interest is how the test pilot community that was flying the spacecraft perceived the role of computers and automation. The human factors aspect of the story is fascinating to me.

Towards the beginning of Chapter 6, Mindell writes (emphasis added by me):

It has become fashionable to denigrate the computers of the past with phrases like "we flew to the moon with less computing power than I have on my wristwatch," or "can you believe the entire Apollo program fit into a mere 36k of memory?"  Simply focusing on memory size, or the computer's speed, however, misses the important engineering accomplishments of the Apollo computer.  For who among us would risk our lives on our desktop computers, with all their speed, accuracy, and memory, and rely on their working flawlessly for two straight weeks?  The space shuttle flies with five redundant computers.  Any fully digital airliner has a minimum of three.  Apollo had only one.  It never failed in flight.

"It never failed in flight." That is remarkable. Remember, seamstresses wove these programs into magnetic core memory. There were plenty of failures of the various pieces of Apollo hardware. When I think of the complexity of software in general, particularly of the tasks that the Apollo guidance computer was tasked with, the fact that the neither hardware nor software ever failed is astounding. Yes, unexpected things happened, like the infamous 1202 program alarms, but the software did the correct thing and continued working.

There are lessons here for everyone who creates softwares.

Published Mar 12 2012, 01:58 PM by ChuckOp
Filed under:

Comments

 

Cynthia WAtson said:

Great insights.  

March 12, 2012 7:29 PM

Leave a Comment

(required)  
(optional)
(required)  
Add

About ChuckOp

Charles Oppermann is 25-year veteran of software design. He is the original author of the popular JAWS screen reader for people with visual impairments, and spent over a decade at Microsoft working on accessibility and user experience in the Windows, Internet Explorer and speech product groups. Charles was a representative to the W3C and Web Accessibility Initiative (WAI), and the author of two technical books published by Microsoft Press. He has also worked at Cisco Systems, Amazon.com, and is currently Program Manager and Development Supervisor for Consumer Security Products at GFI Software.