There are a plethora of mishaps in the early space program to prove the need for DevOps, but Fifty-five years ago this month, there was one in particular that is often used as an example for all. This simple human error almost ended the whole American space program and it serves as a strong example of why DevOps is essential as agile speeds up the development cycle.
The Mariner I space probe was a pivotal point in the space race between the United States and the Soviet Union. The space probe was a grand expedition into a series of large, sophisticated, as well as interplanetary missions, all to carry the Mariner moniker. For this venture to launch, (pun intended) it was dependent on a huge, as well as new development project for a powerful booster rocket called the Atlas-Centaur. The development program ran into so many testing failures that NASA ended up dropping the initial project and going with a less sophisticated booster to meet the release date, (i.e. features dropped from the project.) These new probe designs were based off the previously used Ranger moon probes, so there was less testing thought needed and the Atlas Agena B Booster was born, bringing the Mariner project down to a meager cost of $80 million.
The goal of the Mariner I was to perform an unmanned mission to Mars, Venus and Mercury. It was equipped with solar cells on its wings to assist on the voyage, which was all new technology, but the booster, required to escape Earth’s gravity, was an essential part of the project. As the boosters were based off of older technology than many of the newer features, the same attention wasn’t offered to it while testing was being performed.
On July 22nd, 1962, the Mariner I lifted off, but after approximately four minutes in, it veered off course. NASA made the fateful decision to terminate the spacecraft and destroyed millions of dollars of equipment, ensuring it didn’t end up crashing on its own into populated areas.
As has already been well documented, the guidance system, which was supposed to correct the Mariner 1 flight, had a single typo in the entire coded program. A missing hyphen, required for instructions to adjust flight patterns was missing. Where it should have read “R-dot-bar sub-n”, instead was “R-dot-bar sub n”. This minor change caused the program to over-correct small velocity changes and created erratic steering commands to the spacecraft.
This missing hyphen caused a loss of millions of dollars in the space program and is considered the most expensive hyphen in history.
How does this feed into the DevOps scenario?
Missing release dates for software can cost companies millions of dollars, but so can the smallest typos. Reusing code and automation of programming, along with proper policies, process and collaboration throughout the development cycle ensures that code isn’t just well written, but in these shortened development cycles, it’s reviewed and tested fully before it’s released. When releases are done in smaller test scenarios, a feedback loop is ensured so that errors are caught early and guaranteed not to go into production.