Friday, November 14, 2008

Software says oops to Mars Climate Orbiter '98


Since the dominance of computers in our life, people might think that software is the most perfect thing that has happened to mankind since it does many useful thing for us( yes hardware is definitely required, but its the software which drives and controls the hardware). We also might assume that software should never fail. But the truth is contrast to that belief. Software is prone to failure and the fact that there is 10000s of lines of code makes it more difficult to test thoroughly. Lets take a very simple example, how many time do you have to restart your computer or cellphone? Ideally that should not happen but it does happen.
I tried to search some of the biggest project failures due to software errors and came across the one which failed the mission to Mars (yes planet Mars). Obviously it was a human error which lead to the failure of software but it shows that how fail-able software is!

The Mars Climate Orbiter (formerly the Mars Surveyor '98 Orbiter) was one of two spacecraft in the Mars Surveyor '98 program. The two missions were to study the Martian weather, climate, and water and carbon dioxide budget, in order to understand the reservoirs, behavior, and atmospheric role of volatiles and to search for evidence of long-term and episodic climate changes.

The Mars Climate Orbiter was intended to enter orbit at an altitude of 140–150 km above Mars. However, a navigation error caused the spacecraft to reach as low as 57 km. The spacecraft was destroyed by atmospheric stresses and friction at this low altitude. The navigation error arose because a NASA subcontractor (Lockheed Martin) used Imperial units (pound-seconds) instead of the metric system. The software was used to control thrusters on the spacecraft which were intended to control its rate of rotation, but by using the wrong units, the ground station underestimated the effect of the thrusters by a factor of 4.45.This is the difference between a pound force - the imperial unit - and a newton, the metric unit. The software was working in pounds force, while the spacecraft expected figures in newtons - and 1 pound force equals approximately 4.45 newtons.The problem arose partly because the software had been adapted from use on the earlier Mars Climate Orbiter, without proper testing before launch, and partly because the navigation data provided by this software was not cross-checked while in flight.The Mars Climate Orbiter thus drifted off course during its voyage and entered a much lower orbit than planned, and was destroyed by atmospheric friction.

The total cost of the mission was $327.6 million ONLY.
Well there can be other argument as well, why do we have two different units of measurement? But I will not go into that side as it unrelated to software and related to HUMANS.

Source: http://en.wikipedia.org/wiki/Mars_Climate_Orbiter