Jul 292011
 

With the return of Atlantis on July 21st the era of the Space Shuttles has come to an end. It certainly was a fascinating program that has delivered quite a few highlights. However, it was not entirely successful.
Do you remember the praise that was given to the new concept of the shuttles 30 years ago? Here are a few things I remember:

  • The shuttles are cheaper, because they (and the booster rockets) are reusable
  • They are safe, because they partially work like an airplane
  • There will be weekly launches to space, because it’s quick to get the vehicles ready for the next flight

Reality was much different: 2 out of 5 orbiters were lost, killing their crew; a single launch weighed in on average with half a billion dollars; and it took more than one year to prepare a vehicle for launch.

How could that happen?
At a first glance, the concept of the shuttles sounds pretty straight and quite suitable to achieve the original goals. What turned out later, however, was that details of the implementation weren’t that simple at all and finally made the Space Shuttle to probably the most complex machine men have ever built. Just a few examples:

  • During countdown, Launch Control at Kennedy Space Center monitored 22000 parameters to decide if a shuttle is ready to go or not. It is no surprise that often they found something and delayed the launch.
  • The heat shield of the orbiters with its thousands of tiles was a weak (and expensive) point from the beginning. The Columbia accident further revealed a fundamental design flaw that eventually could not be fixed. After the issue was known, it just became even more expensive trying to prevent further accidents.
  • Even the Solid Rocket Boosters, apart from the main tank the apparently simplest part of the shuttles, caused the loss of Challenger.

Now compare this to the Russian space program. The Soyuz rockets only slightly changed since the 1960s. There have been more than 850 launches, fatal accidents are rare (also due to a rescue system). Like for the shuttles, the time for a launch is defined months in advance – but did you ever hear of a delay?
The Russian space program almost works like Swiss clockwork.

So what can we learn for software projects?
The Russian spaceships are a typical 80% solution. They are cheap and reliable, but they are not reusable and they can transport only either crew or cargo. The Soyuz rockets are not overly sophisticated, but they do the job.
The US Space Shuttles tried to get close to a 100% solution, combining different kinds of goals. The attempt to create something perfect finally led to a complex beast, which was difficult and expensive to control.

I once attended a talk of Charles Simonyi, one of the co-founders of Microsoft and the only space tourist who was up there twice.
He said, the more he was trained for the Russian spaceship, and the more he understood how it worked, the more secure he felt. It is so incredibly simple, it just has to work.
We should be able to say that about our software systems as well.