Zero bug policy

A zero bug policy is a working rule that keeps a team's open bug count at zero rather than letting known bugs accumulate in a backlog. In one form every reported bug is fixed before feature work continues; in the other each report is fixed promptly or closed deliberately with a reason. Neither form claims the software has no bugs, only that no known bug waits in a queue.

The longer version

Both forms replace the backlog with a decision made at triage. Under the strict form the only decision is when, since every confirmed bug is scheduled ahead of feature work and fixed in the current cycle. Under the fix-or-close form triage has two options: schedule it ahead of feature work, or close it with a reason, such as will not fix, works as intended or cannot reproduce. In neither form is there a third state where a bug waits in a ranked list to be reconsidered next quarter. A closed bug that turns out to matter comes back as a fresh report with the new evidence.

The name invites confusion with zero defects, the manufacturing idea that quality is achieved by preventing errors at the source, and with the claim that a product is bug-free. Neither is what the policy says. It is a queue discipline, closer to inbox zero than to a quality standard: the software still has unknown bugs, and known bugs are still being closed unfixed, but the team always knows that its list of open defects is empty and that every report received a decision. Definition of done is the neighbouring rule, since a team with a zero bug policy usually includes 'no open bugs against this work' in it.

The strict form, or a fix-or-close rule where closing needs a justification nobody wants to write, stalls the roadmap, fixing bugs at the expense of every feature. Where closing is too easy, the team closes anything inconvenient and reports the same clean queue that a hidden backlog would, with the bugs now invisible instead of ranked. The tell is the reopen rate: a policy working well closes bugs that stay closed. It also depends on reports arriving reproducible, because a bug that cannot be reproduced in the cycle it is reported is closed by default, which punishes reporters who file with too little evidence.

Common questions

Does a zero bug policy mean the software has no bugs?

The policy means the team has no open bugs in its queue, because each report is fixed or closed as it arrives. The software still contains unknown defects, and some known ones were closed without a fix. The claim is about the backlog and the team's discipline, never about the product.

What is the difference between a zero bug policy and a bug backlog?

A backlog holds known bugs in ranked order for later. A zero bug policy forbids the later: every report is fixed in the current cycle or closed with a reason. Teams with a backlog spend triage re-ranking old reports; teams with the policy spend it deciding fix or close, once, per report.

When should a team adopt a zero bug policy?

When its backlog has grown to the point that ranking it costs more than deciding on each item, and, for the fix-or-close form, when the team can agree on written reasons for closing a bug unfixed. It suits products under continuous delivery with a steady report volume. A team that cannot say no to a report will fix everything and ship nothing.

What happens to bugs that cannot be reproduced under a zero bug policy?

A report nobody can reproduce is closed as cannot reproduce, with a note saying what was tried and what evidence would reopen it, unless it carries a console error, a failed request or a recording, in which case it gets a bounded investigation before closure. The policy has no state where a report waits for someone to try again later; the reporter comes back with the browser, the steps and a recording, and it re-enters as new.

Who decides whether a bug is fixed or closed under a zero bug policy?

Whoever runs triage, usually the product owner with a QA lead, deciding once per report as it arrives and writing a reason for any closure. The developer who would fix it advises on cost, and the reporter has no vote beyond the evidence supplied. A decision left to the reporter fixes everything; one left to developers alone closes the inconvenient reports, so triage holds it.

Bug reports that arrive ready to triage.

Collect replay, console, network and browser context with the Free plan.

<script src="…/widget.js" data-key="pb_pub_…">