📜 ⬆️ ⬇️

The cost of the error: who pays for the programmers' mistakes and how much?

Modern programmers live in an interesting time when the software literally penetrates into all spheres of human life and begins to exist in countless devices tightly embedded in our everyday life. Now you will not surprise anyone with programs in refrigerators, watches and coffee machines. However, in parallel with the triumph of convenience, people's dependence on intelligent technology also grows. Inevitable consequence: reliability of software comes to the fore. It is difficult to frighten someone with a mad coffee maker, although it can cause a lot of mischief (liters of boiling coffee flow down your snow-white marble countertop ...). But the idea of ​​growing software quality requirements is important, so let's talk about errors in the code that have resulted in significant waste of time and money.


Picture 4


The purpose of the narrative is the struggle with the idea that the defects in the programs can be treated as scornfully as before. Now errors in the programs are not only the wrongly drawn unit in the game, now the safety of property and the health of people depend on the code. In this article I want to give a few new examples of the need for a reverent attitude to code.


It is impossible to deny that complex programs are increasingly entering our life: household appliances controlled from a smartphone, gadgets endowed with such functionality that 10 years ago did not even have to dream and, of course, more complex software in factories, cars and so on. d. Any program is created by man and, the smarter it is, the more dangerous its failure.


Let's talk about the money lost due to errors in the software, and the growth of our dependence on the program code. The topic has been repeatedly discussed (including by my colleague, Andrey Karpov, “The Big Calculator is out of control ”), and each new example proves: the quality of the code is not something that can be neglected.


Picture 1


Space


Dear hyphen


Satellite Mariner 1 in 1962 was supposed to go to Venus. Launching from Cape Canaveral, the rocket almost immediately strongly deviated from the course, which created a serious threat of falling to the ground. To prevent a possible disaster NASA, it was decided to launch a rocket self-destruct system. After 293 seconds from the start, the Mariner 1 was eliminated.


Picture 3


The audit commission conducted an investigation, during which it was revealed that the cause of the accident was a software error, due to which incorrect control signals were received.


The programmer incorrectly translated the written formula into computer code, skipping a macron or overline (which means "n-th smoothing of the value of the derivative of radius R over time").


The program perceived even minor changes in speed as very significant and made course corrections.


The price of the "missed hyphen" - $ 18 million (at that time).


Russian GPS sinking to the bottom


A striking example of how millions can be lost due to a programming error is a relatively recent case. It would seem that in the 21st century there is everything necessary for writing reliable programs, especially when it comes to the space industry. Experienced professionals with excellent education, good funding, the ability to use the best tools for testing software. All this did not help. On December 5, 2010, the Proton-M launch vehicle with three Glonass-M satellites, the Russian analogue of GPS, fell into the Pacific Ocean.


Picture 5


The cause of the accident, after the completion of the investigation, was voiced by the official representative of the Prosecutor General of the Russian Federation, Alexander Kurennoy: carrier into an open orbit and its fall into the Pacific Ocean "( source ).


An interesting moment in this story - the document on the need to correct the formula was, but it was written off as fulfilled. The manual did not bother to check the implementation of their instructions. All persons involved in the accident were prosecuted and large fines. But this does not compensate for the losses, which amounted to 138 million dollars.


Cars


Back in 2009, a professor of computer science at the Technical University of Munich, an expert on software in automobiles Manfred Brah, said: “The software of a premium car contains about 100 million lines of code” ( source ). Eight years have passed since then, and it is not at all necessary to be a fan of Top Gear transmission to notice: modern cars are real intelligent cars.


According to the statement of the same expert, the cost of software and electronics in a car is about 40% of its price in the market. And this applies to gasoline engines, what can be said about hybrids and electric cars, where this value is about 70%!


When the electronic stuffing becomes more complicated mechanical, then the responsibility of software developers increases. A bug in one of the key systems, such as braking, is much more dangerous than a broken brake hose.


Get behind the wheel of modern comfortable and "smart" cars or ride on old-school but understandable cars? You decide, I offer a small selection of bugs in the software of cars.


Toyota again


Japanese cars Toyota have a positive reputation, but from time to time the media get information about the recall of a certain number of cars. Our blog already has an article about a software bug in Toyota - " Toyota: 81,514 violations in the code ", but this case, unfortunately, is not an isolated case.


Picture 6


In 2005, 160 thousand Toyota Prius hybrids of 2004 and 2005 were withdrawn. The problem was that the car could stop and stall at any time. It took about 90 minutes per vehicle or about 240 thousand man-hours to eliminate the bug.


Chrysler and Volkswagen


In May 2008, Chrysler recalled 24,535 Jeep Commanders vehicles produced in 2006. The reason is a software error in the automatic transmission control module. Failure led to an uncontrolled engine stop.


In June of the same year, Volkswagen recalls about 4,000 Passat and 2,500 Tiguans. Here, an error in the software had an effect on increasing the engine speed. The tachometer readings began to creep up with the air conditioner on.


Needless to say that the process of recalling cars is associated with huge financial costs. But for such large manufacturing companies, it’s much worse than losing money, but a decline in consumer confidence. With a huge competition in the automotive market, one such misstep can have very, very negative consequences. Restoring the reputation of a reliable manufacturer is not easy.


Tesla


Above it was about ordinary cars, and not the most recent years of release. As you can see, even program errors are possible in them, to say nothing about environmentally safe electric cars that are actively promoted.


Let's talk, of course, about Tesla Model S. May 7, 2016 Joshua Brown, famous for his videos on YouTube dedicated to the praise of an electric car, got into a car accident. He was driving a Tesla Model S. Being 100% confident in the intelligence of the car, he trusted the autopilot. The result of the trust is tragic - from injuries Joshua died on the spot.


The catastrophe was widely publicized. An investigation has begun. It was possible to establish that, apparently, Brown did not independently follow the road, and the autopilot faced a situation that was not reflected in his program code. Before Tesla Joshua was moving a truck with a trailer. The car planned to perform a maneuver - left turn, respectively, it was required to slow down. But Tesla, traveling behind, did not start to slow down, because The autopilot systems did not recognize the object in front.


It happened, most likely because of the bright sun. The rays reflected off the trailer and the autopilot took the truck as one with the sky. In the official report, this was explained as follows: "Tesla's automatic braking systems are collision avoidance technology in rare cases and are not designed for reliable performance in all accident modes, including collisions resulting from crossing paths" ( source ). The full accident report is freely available .


In other words, the autopilot is designed to help the driver (better cruise control, roughly speaking), and not replace his functions. Of course, such an excuse did not save Tesla's reputation. Work on the improvement of the software continued, but Tesla Model S was not withdrawn from the roads.


Picture 7


Representatives of the company cited the following road statistics: “For every 90 million miles of the path traveled, one person dies. In contrast, people drove 130 million miles on Tesla’s autopilot before the first death was confirmed. Now this figure has risen to 200 million.” ( source )


On the one hand, such statistics indicate that the electric car is safer, but are you ready to entrust your life, the lives of passengers and other road users to the program?


And this is not a rhetorical question. Judging by the news of the exchange , contrary to the sensational accident, Tesla shares have risen by 50% since the beginning of 2017. Two significant factors contribute to this: the popularity of movements that advocate for improving the environment in the world, and the high personal rating of the head of Tesla - Ilona Mask.


Universal Scale - The Trouble of 2038


Could not fail to conclude this article in the end of the article. You can read more about the Bede of 2038 in the article " 2038: Only 21 Years Left ", but I will focus on one important point.


Equipment for plants: all kinds of machines, conveyors; household appliances and other complex units, equipped with specialized software, have a sufficiently long service life. The probability that the machine launched in 2017 will function and in 2038 is very, very high. From here it is logical to conclude: the problem, when 32-bit values ​​of the type time_t can no longer display dates correctly, is already relevant!


If now software developers will not take it into account, then what awaits programmers in 2038 ?! There is every chance that the software for embedded systems will satisfy many surprises. But I think we will witness that.


Conclusion


Perhaps the examples given in the article will seem too epic. Of course, only tragic cases are widely publicized. But I’m sure that every software company has a story about how just one mistake caused many problems, albeit on a local scale.


Can you find the culprit? Sometimes yes, sometimes no. But the point is not to find the extreme and somehow punish him. The idea is different - programs become more complex, they are increasingly entering our lives, and therefore the requirements for code reliability are growing. The price of standard errors increases, responsibility for the quality of the code falls on the shoulders of developers.


What is the way out? Upgrade the development process. Writing helpers to programmers is a special program for identifying and eliminating errors. The complex use of modern techniques significantly reduces the likelihood that a bug in the code will not be detected during the development phase.


I wish you to avoid blunders, and your projects will never get into the selection, similar to that given in this article.


')

Source: https://habr.com/ru/post/330762/


All Articles