Photo by Andrea Piacquadio on Pexels.com

Today while I was interviewing a potential candidate for our organization, I asked her a question, what does she understand by the term ‘Bug’.

Her instant reply was “Anything that deviates the product from its specifications/requirements.”

Another answer I received from another interviewee was “It’s the difference between the expected and actual behavior of the product.”

This left me pondering for a while and I Googled the definition of a Bug and this is what I got “A mistake or problem in a computer program.”

This made me think that there was nothing wrong with the interviewees, as this is how young engineers are being taught or rather I should say are being fed today.

Photo by Ryanniel Masucol on Pexels.com

Let's look at the problems with the three statements.

Statement 1: Anything that deviates the product from its specifications/requirements

This makes the definition of Bug restricted to requirements/specifications. What if there is a possibility of a bug in the requirement itself. What if it is a system(under test) specific bug? What if it is a user-specific bug? What if it's an intermediate bug? The What if… continues with a lot of possibilities.

Statement 2: It’s the difference between the expected and actual behavior of the product

This is the most widely used/heard definition for a Bug. But, how fair is it? How do you determine the expected behavior of the product? What if my expectation is different from yours (different user personas use the product differently)? 

Statement 3: A mistake or problem in a computer program.

This I would say is a very vague definition, that does not specify whose mistake and what kind of a mistake it is. Bugs are not always problems in Code/Program. There could be bugs related to the environment, domain, user, state, other interacting systems, and many other controllable and uncontrollable parameters.

The above three statements are what I came across in a day. Likewise, there are many other definitions out there for the term Bug. Lots of schools teach/promote a lot of definitions.

Photo by fauxels on Pexels.com

But we as Engineers (Developers, Architects, Testers, Leads, and Managers) need to understand the essence and meaning of it rather than just sticking to some labeled definitions. We are the ones who build products. We are the ones who walk with the vision of the future. So do these conventional definitions fit in our context of “Bug”? This is a question we need to answer ourselves.

Here is what a Bug is in my context – Bugs are the potential risks for a product. They could be anywhere in or around the product, reducing its quality and consumability.

Do let me know what other similar statements have you heard for Bugs.