No software is perfect. Software bugs have existed ever since the creation of early version electromechanical computers. So even the most carefully checked and continuously tested computer systems can experience flaws, no matter how smoothly it has been operating before that. There is no perfect software.
An unanticipated set of computer bugs might come up at any time, throwing hours, days, and even weeks of work down the drain. Software errors are notorious for being an unnecessary waste of time. No one is immune, but everyone should be ready to react appropriately to such circumstances when necessary.
As Andrew Hunt points out in his book “The Pragmatic Programmer: From Journeyman to Master”; “You Can’t Write Perfect Software. Did that hurt? It shouldn’t. Accept it as an axiom of life. Embrace it. Celebrate it. Because perfect software doesn’t exist. No one in the brief history of computing has ever written a piece of perfect software. It’s unlikely that you’ll be the first. And unless you accept this as a fact, you’ll end up wasting time and energy chasing an impossible dream.” It’s not that Hunt tries to discourage developers by saying they will never be able to write computer code beyond reproach. On the contrary. He encourages them to accept the programming reality of buggy software as it is and urges them to shift their focus from something that is impossible to something that is doable. Programming shouldn’t be a race for perfection but a battle for correctness, functionality, and efficacy.
Because of the prevalence and the seriousness of some computer failures, the global economic impact is huge. The total cost of debugging has reached an impressive figure of $312 billion per annum. According to research conducted at Cambridge University, software engineers spend 50% of their development time finding flaws and fixing them. It truly is a lot of time. But still, we don’t want to have another disastrous computer error, right? The world has witnessed plenty of them already.
Here are 5 examples of expensive and infamous software bugs:
NASA – Mariner 1
Back in 1962, the US planned to send the first spacecraft of the American Mariner program to Venus. Unfortunately, that didn’t happen according to plan. Shortly after its launch, the rocket unexpectedly changed its intended course and stopped responding to commands sent from the guidance systems on the ground. The reason for the malfunction? Engineers found a programming error, of course. The most well-known explanation for the mid-course maneuver of Mariner 1 was that one of the software engineers missed a superscript bar when transcribing a handwritten formula into the computer code. Due to the omitted smoothing function indicated by the bar, the software interpreted the total value of the variations of velocity wrongly. Thus, instead of treating them as normal, the implementation treated them as serious. Respectively, it led to incorrect guidance signals and one of the most famous bugs in history. It caused the rocket to veer off course and self-destruct commands were issued by a NASA range safety officer.
Mariner 1 failure cost $18.5 million.
Get a better understanding of current safety measures –through examples of problems that occurred without them.
Acquire a grasp of the protocols and guidelines that help software development maintain a clear and concise path to success by limiting errors.
Soviet Union Early-Warning Satellite System
A possible nuclear holocaust and World War III almost happened in 1983 when the Soviet early-warning system signaled 5 incoming US ballistic missiles. “An alarm at the command and control post went off with red lights blinking on the terminal. It was a nasty shock,” Lt. Col. Stanislav Petrov told Moscow News in 2004. “Everyone jumped from their seats, looking at me. What could I do? There was an operations procedure that I had written myself. We did what we had to do. We checked the operation of all systems — on 30 levels, one after another. Reports kept coming in: All is correct.” He was the duty officer at that moment and, luckily, he trusted his gut and reasoned that the alarm was, in fact, false. Later on, it was confirmed that the wrong nuclear missile detection and alarm was caused by a bug in the Soviet software that detected sunlight on high-altitude clouds as missiles.
That cost almost all of humanity. Black Monday
Black Monday is related to October 19, 1987, when stock markets all around the globe experienced a massive breakdown. Because of this financial crash, Dow Jones Industrial Average lost 22.6% of its total value, while the S&P 500 stock market index dropped 20%. There are various causes for this dramatic decline, among which is the use of new software and program trading. The rapid transmission of stocks and mass exodus started by investors overwhelmed the operating programs. That made the market system crash, leaving people practically unable to observe what was happening with the sell orders. One of the first actual cases of being blinded by technology.
This drop from peak to bottom resulted in a loss of $500 billion in a single day.
The Millennium Bug
The Millennium Bug (also known as Y2K) is a problem that occurred in the coding of computerized systems at the beginning of the year 2000. Legacy software and programs written in the early days of computing were designed to store four-digit years as two digits instead in order to save computer storage space. So 1988 would be interpreted as “88”, 1999 as “99” and so on. However, the major and rather costly issue arose when systems weren’t able to indicate “00” as the year 2000. Instead, it was recognized as 1900.
That cost $500 billion and a lot of confusion.
Toyota’s Unintended Acceleration
Since 2009, the Japanese automotive manufacturer made several recalls all of which were due to a software flaw and not because of a mechanical issue. During the summer of the same year, a Lexus ES350 was reported to have accelerated to more than 100 mph all of a sudden. Because of the tragic ending, Toyota dealers had to make a few changes, including shortening the gas pedals and upgrading the integrated computers with new software. In 2010, the carmaker had to recall more than 9 million of its vehicles around the world because of a software bug in the anti-lock brake system.
All of that cost Toyota $3 billion.
Uncover the lessons of the past that will teach us how to handle the future.
Learn what kind of mistakes led to huge losses of resources in the past and how to not let it happen again in the future.
It’s been nearly two centuries since Ada Lovelace wrote the first ever description of a computer program and it’s now when we can see how things have evolved. Software is no longer sneaking into our daily routines. Software is already there and it’s ruling. Taking into account the abundance of software developments, it is hard to imagine all of them running without deviations or complications.
Simply, perfect software does not exist. It is always vulnerable to errors and developers must accept that. What really matters in the end is not whether the software will turn out to be absolutely and unquestionably error-free. What matters is whether the program will do what is supposed to do, whether it can handle possible flaws without dying completely, and whether it is easy to debug. “Bug exists” is the rule of software. That is why there was such a necessity to upgrade computer systems worldwide and there still is.