For many people, the notion of Zero Bugs seems like an unsustainable dream and yet the teams that do it are tremendously successful.
What do we really mean when we say Zero Bugs?
Zero Bugs is a policy where we have decided that if a bug is found, fixing that will be the team’s top priority. That we will not start new feature work if there are known bugs in the system.
Terminology: Some teams will say that defects and bugs are different things. I consider them to be the same. Anywhere I say “bug”, you can freely substitute “defect”.
People often jump to the conclusion that we mean “our product has no bugs” and that is likely impossible and certainly not what we’re saying. Having said that, if the team has been following a Zero Bug policy for a while, it’s likely that there are very few bugs left in the system anymore.
I’ve seen multiple teams for whom “we haven’t had a bug reported in production in years” is a reality.
A common question is “what if the business doesn’t want the team working on these bugs?”
Consider that every bug is actually unfinished work. We had implemented some feature in the past and the fact that it’s not working properly now means that we didn’t finish that work. Had we finished it, it would now be working.
So what we’re really asking is “what if the business doesn’t want us to finish that feature that they’d previously asked for?”
If they’re happy with the existing behaviour then it’s no longer a bug so close the ticket. If it is a bug then finish it.
The key point is that if they want it fixed, we fix it now, not later.
“What if we have hundreds of open bugs right now? We can’t possibly stop everything to fix them all!”
If you have hundreds of bugs open then likely your team is seriously demotivated by that fact. They have also probably stopped caring about the quality of the product. If so much is already broken and nobody cares about that, why would I care if another bug slips through. This is known as the broken window effect.
Go through the list of bugs you have and make a decision about each. Either decide you’re going to fix it or delete it. If you’re going to fix it then do it now.
The teams that I’ve worked with that implemented a Zero Bug policy, tended to be happier and more productive than teams that didn’t. This should be the standard and it baffles me that anyone pushes back on it.
See also: Definition of a bug