DEV Community

Cover image for Stop Calling them ‘Bugs’
Maxi Contieri
Maxi Contieri

Posted on

Stop Calling them ‘Bugs’

Let's name things the right way

According to Wikipedia:

A software bug is an error, flaw or fault in a computer program or system that causes it to produce an incorrect or unexpected result, or to behave in unintended ways. The process of finding and fixing bugs is termed "debugging" and often uses formal techniques or tools to pinpoint bugs, and since the 1950s, some computer systems have been designed to also deter, detect or auto-correct various computer bugs during operations.

Alt Text

The Past

There are many historical references to the word Bug. Thomas Edison used it even before the first electrical computer.

During computing early days on Mark III, the large computing facilities were a source of heat, therefore attracting real bugs like moths.

Computer pioneer Grace Hopper coined the term while looking for a system malfunction.

Alt Text

The present

70 years after, datacenters are very clean facilities (leaving no space for people or insects). Even our home computers are almost free from malfunction caused by real bugs.

We still name our software glitches as bugs instead of faults and this is keeping as from confronting with real problems, real defects and our own responsibilities.

Software Quality process is under our control.

It is our responsibility to deliver quality products.

The term Bug sounds like an excuse out of our scope infecting our systems. It is not.

Alt Text

The Future

Language is continuing evolving. We recently got rid of the master word on our GIT repos.

To embrace the future and our own responsibilities, we need to be very careful with names, not only with our classes, methods and variables but also with our artifacts.

  • We don't need to debug software anymore. Find the root fault (caused by ourselves or previous developers), embrace the problem, write an automated test, and fix it. Easy as that. 🐞

  • We need no bug trackers. We just need to care for incidents, and not all incidents are faults. Surprisingly, many of them are related to misunderstandings, lack of definition, ambiguities etc. 📋

  • We don't want to fix all software faults. A good deal of mature software have known bugs. Now called known defects. ✔️

Let's start by calling things by their name.


Beware of bugs in the above code; I have only proved it correct, not tried it.

Donald Knuth

Part of the objective of this series of articles is to generate spaces for debate and discussion on software design.

We look forward to comments and suggestions on this article.

Discussion (10)

Collapse
qm3ster profile image
Mihail Malo

Do you also support the renaming of the master git branch that you referenced?

Collapse
mcsee profile image
Maxi Contieri Author

Yes. It is an outdated name that has not much concern in computers but much impact on real world related to groups that have been suffering. So why not?

Collapse
qm3ster profile image
Mihail Malo

Idk, just wanted to know your opinion, since you referenced it.
Myself, I disagree with both halves. Performativity is harmful, giving words power like that is harmful.
The term is uniquely fitting, as it derives from "master copy" and not the maybe potentially unpleasant analogy that's used with bus clocks. Even trunk would have been better, but nothing conveys the notion of "this branch is what the software is" quite as well.

Thread Thread
mcsee profile image
Maxi Contieri Author

We agree to disagree :)

how about the term 'bug' ?

Thread Thread
qm3ster profile image
Mihail Malo

Yeah, it's pretty irresponsible. But how do we rename debug builds, debug asserts, and most importantly, the debugger?

Thread Thread
mcsee profile image
Maxi Contieri Author

I don't have the final word.

My votes would be
1) testing builds
2) asserts (should be turned on on production as well)
3) .... tracer

Thread Thread
qm3ster profile image
Mihail Malo

teleports behind you
removes all asserts and logging statements at compiletime
Nothing personell, kid
😎

Collapse
lifelongthinker profile image
Sebastian

You can come up with new ways of referencing old things. That's one solution (if you feel you have a problem). But the problem with using existing words is that you might run into the same problems you sought out to solve in the first place. For example, if you refer to bugs as defects, someone with a slightly different connotation of the word might object and say: Why defect? It isn't malfunctioning, it just doesn't do what you expect it to do.

On the other hand, I have never understood the metaphor "bug" to be something out of our control or caused by something out of our control. So I see no necessity for new words.

So, what else can we do? Coin new terms (neologisms)? That's a long road, we will have to do a LOT of convincing for our neologisms to catch on.

Bottom line, I believe our best option is making clear about our connotation of "bug" - what it really is, and what it isn't. And in this regard, I totally agree with your points.

Thanks for the input!

Collapse
mcsee profile image
Maxi Contieri Author

i would change 'Bug' to 'DefectIIntroducedAndIsUnderMyControl' :)

Collapse
lifelongthinker profile image
Sebastian

😝 Spot on