It goes without saying that all developers would want error-free codes. It’s really frustrating when we fail to write the correct codes and encounter any form of error on our first compile. We strive for perfection, yet errors arise along with bugs that are almost inevitable.
Developers aim for the perfect coding ever since the ‘waterfall ages’, this is so they can avoid the hassle of finding and fixing bugs. Most even aspire to develop as perfect codes as possible.
But we’re all humans, we’re all prone to mistakes, yet it doesn’t mean we can’t strive for excellence – particularly in software development where all elements can be controlled precisely the way we wanted them to be.
The desire to have a perfect (or near-perfect) application paved the way to the concept of Zero-Bug software development. However, as Sam Hatoum on Medium said:
“Zero-Bug does not mean bug-free code production; it means striving to eradicate all known bugs.”
Zero-Bug software development highlights that all bugs take priority in before proceeding with new features for the product. It’s an approach where the software development team aims to keep their production bug backlog empty.
This means the team should eradicate all known bugs before proceeding to the next part of the development – so basically, it’s like your mom telling you to clear the dining table before the meal to make sure it’s clean (and free of leftovers from the last meal).
But, in order to implement the Zero-bug Policy, we should know why bugs exist in the first place.
What are bugs?
In its simplest sense, a bug is a fault in a computer program or software system. Bugs cause the application to generate an incorrect result and/or behave in an unexpected way.
A bug can occur in several circumstances. It could happen when the product requirement is not fully defined, developers could produce incomplete, missing, or invalid functions for their projects.
It’s also possible to happen when there are current updates to the technology used for the product which might not be available in the current version you’re using.
The execution environment could also cause the occurrence of bugs. Development environment could be controlled, whereas the production environment cannot.
Of course, another cause could be the most mundane of all: Human error. Due to stress and fatigue, we can totally slip up some parts of our own codes too.
How Zero-Bug development works?
In Zero-Bug development, you either have a bug or you don’t. Bugs take P1 (a.k.a. priority 1) over ALL new features or improvements. No P2 or P3. Because if your product can live with it, it’s not really considered a bug. It falls under improvements.
Software development teams still work according to the usual order of business. They work on the features first according to the delivery order. Then, as soon as blockers arise, they will jump to resolve blockers before continuing to the new feature or sub-feature.
Other issues will be worked on after the feature or sub-feature but before the product’s release. Then, the improvements are worked on after the initial release.
Essentially, nothing changes on the bug-raising process. What changes is how your team will fix them. Is it a priority or not? Zero-bug development eradicates all known bugs, allowing software development teams to build and deliver more stable applications. No known bugs enable you to swiftly respond to changes.
Fixing blockers in the early period of the development also minimize the cost for the product owners because the team has prevented the issues to spread in other features or sub-features.
So, is Zero-bug development possible?
If you want a straight answer – YES! Definitely. Like how it’s definitely possible for members of the development team to make mistakes, too.
It serves a great purpose and vision. It gives the team a motivation to do their best and address the bugs immediately to avoid greater issues down the line.
The operative word is “striving.” It’s not about being perfect, that’s not going to happen. It’s about attempting to give the best working product by giving your all in the whole development process.
There really is value in implementing Zero-bug development in projects of software development companies. It might be unattainable to build a seamless, perfect application, but there’s no stopping us to strive to develop one.
As the legendary quality expert William Edwards Deming puts it, “Quality comes not from inspection, but from the improvement of the production process.”
And isn’t that our goal as developers, to develop a quality product we could be proud of?