The fatal lines of code — About developers ethic

Tien
The Startup
Published in
5 min readJan 10, 2020

Most of us used to be taught or heard about the words: “Work Ethic”. A very common words used in schools or workplaces. In general, that’s said: “Do not directly or indirectly join any activity with purpose of scamming or fraudulent, causing harm to employer or clients”.

Photo by Rita Morais on Unsplash

After all, ethics is extremely important in any industries, especially related to human life such as medicine, that’s why we always hear about medical ethics or the Hippocratic Oath. Now let’s think, is morality in programming important?

Before getting the answer, let’s review some accidents caused by software bugs in the past.

From the lines of code that murders

In my humble opinion, most of developers, including me, are nice, hard-working, sitting in front of the screen 8 hours/day (maybe more), so, “Murder” is quite a strange definition with developers and most of people too.

“Murder” refers to kill or slaughter inhumanly or barbarously.

— Dictionary.com —

Sounds scary… Obviously, developers cannot, but the lines of code written by them can. And we will see some typical fatal cases caused by developers’ code:

1985–1987 — Therac-25 radiation therapy machine. The software, which was written in assembly language, played a role in controlling the degree of radiation emitted by the machine. Due to lack of attention in designing and testing, the machine has given the patients radiation overexposure, resulting in at least 6 accidents, 3 patients were reported dead.

1994 — Scotland Chinook helicopter crashed. 29 people has been killed in the accident. A publication by Public Accounts Committee concluded that the tragedy has caused by repeated faults in the new Full Authority Digital Engine Control (FADEC).

2018–2019 — Boeing 737 Max airplane crashes. The most recent and well-known disasters in airlines history. 2 accidents happened, killed 346 people. Boeing has admitted about the issue in a new integrated software called MCAS, which control the angle of attack sensor (AoA). The airliner has been grounded around the world after the accidents.

A quick explanation about the issue on Boeing 737 MAX airliner.

… To burnt out million dollars

July 28, 1962 — Mariner 1 space probe. The spacecraft cost $18.5 millions in 1962. A bug in the flight software caused the rocket to divert from the intended path shortly after taken off. A destructive command has been sent 294.5 seconds after launch. NASA concluded the faulty application of the guidance equations was taking the vehicle far off course in the report in 1965.

1993 — Intel Pentium floating point divide. Intel has been charged $475 millions because of this issue. This is one of the most common problems related to computing arithmetic, most of developers have a sense of float or double containing larger data than long or integer primitive type. It’s the truth but they are misused. Both float and double are highly recommended not using in monetary calculation due to floating point problem, and it caused the processor return incorrect results when dividing a number. In 1994, Intel had to recall the defective processors.

May 2017 — WannaCry ransomware attack. The attack has been widespread around the globe by the cryptoworm, damaged from hundreds of millions to billions of dollars. The worm targeted machines running Microsoft Windows by encrypting data and blackmailed the victims into paying Bitcoin. Although Microsoft has released the patches, most of the affected machines were running older Windows systems that reached end-of-life.

The most frustrated screen recently.

Who is responsible for?

In the events mentioned above, there must be countless people who were taking charge, and developer is one of the roles being accountable for the most.

In a talk by “Uncle” Bob in 2016 with the topic: “The Future of Programming”, there are 2 quotes that I always keep in mind:

We did not get in the business of software to kill people; but we are killing people.

and

No government can act without software. We rule the world.

Yes, the developers rule the world.

I couldn’t find a source about percentage of web developers but I believe at least 80% of developers are working with web application. In this field, most of bugs may not be deadly. However, embedded developers or who create conventional software for medical machines, electrical infrastructure, nuclear plants,… a little mistake may result in catastrophe.

We are not perfect, and as developers, we are going to make mistakes. Sometimes, we even make a joke when facing an issue.

Don’t worry, you can tell them it’s a feature.

Yes, it is funny but it should have been a lot better if we would do it more careful. Please think about the moment people start using what we wrote. Put yourself into their shoes, where the situations look like above.

A tiny bug may send people to another world or throw millions of dollars out of the window. Are you still smiling while hearing the news about death of people who had been using your software, or companies declare bankruptcy because of “the missing feature”?

Final words

I only want to emphasize, as developers, who may create programs targeting to billion users, respect yourself, respect your job! Code responsibly.

--

--