Firstly, what is a bug in software development?
A creepy crawly? Not this time.
An error such as 3×2 = 5? Potentially but it may have been something that the developer intended.
A fault? Maybe but it could be working to the specifications provided.
A defect? This is much closer but it only covers part of what a bug is.
All of the above are partially true.
What is a bug?
A bug in software development is anything that makes the consumer think the system isn’t working as they expect. This means that the system could be working as intended but the user doesn’t know how to achieve what they’ve set out to do. More often than not it’s because the system isn’t working as intended. Some may say it’s fine and doesn’t need to be fixed because the user just reported something that’s working as intended. But if that’s the case and they don’t know how to use the system then is the system really fine?
Humans aren’t perfect
Bugs exist due to this very reason. Whether you’re on the receiving end of a bug because something isn’t working as you expect or you’re the one who made the bug in the first place this holds true. Based on that, you’d think bugs would be common and you’d run into them all the time. The truth is they are, especially when a system is new and actively being worked on or used for the first time. It’s common for tens if not hundreds of bugs to be found and fixed during the early stages of a system. Anything from wording changes to functionality not working as expected and even changing a users experience so they can more easily accomplish their tasks.
So given how common bugs are, why do people treat bugs like they’re the worst thing to ever happen? In the real world – having a leaking tap or blown light bulb is just seen as a way of life, but in essence they’re real world bugs. People don’t get their undies in a knot over things like that. Even when a tradie stuffs something up and costs you more money, you get annoyed but know that you’ll have to pay for them or someone else to fix it up. Much like the real world, software lives in an ever changing environment that can have unexpected effects on the system and predicting these accurately is like predicting the lotto sometimes.
So why do people get in such an uproar over bugs?
Systems don’t have a testing and bug phase for nothing, so bugs shouldn’t exist right? The issue comes into play when there’s the assumption that every single bug will be found during this stage. As mentioned, systems live in an ever changing environment so this assumption is one we have to squash and accept the reality. It’s reasonable to be annoyed if a consumer is paying to use a system but having some understanding and patience with bugs can go a long way. Asking nicely is normally all that’s required to get your voice heard and your bug fixed (or explained to you) in a timely fashion. No one likes to be yelled at, abused or anything of the sort, so use some good old fashioned humanity. Developers are more than happy to fix up flaws in their systems if you just ask, and ask in a way that shows respect.
For some developers, bugs can be a touchy topic and reality check. No one likes to be told they did something wrong. Ignoring it and thinking it’ll go away is a good way for a developer to set themselves up in a harsh downwards spiral of denial and regression. Learning from the mistake is one of the best things a developer can do though. You’ll be amazed what can be learnt from taking the time to work through a bug no matter how remedial it seems.
The next time you encounter a bug or have to deal with one take the time to handle it in a professional way.
Bugs pave the road to a better product. Embrace them.