“Inspection does not improve the quality, nor guarantee quality. Inspection is too late. The quality, good or bad, is already in the product. Quality cannot be inspected into a product or service; it must be built into it.” – W. Edwards Deming.
A big number of bugs that is discovered in testing processes is easy to prevent. The fact that such bugs are discovered at the testing stage, which is usually at the end of the process, shows that the developers did not perform primary quality check of their work. This wastes the time of both testers and developers, reduces motivation and efficiency and slows development. The costs go up significantly as a bug moves through traditional SDLC. For example, IBM estimates that if a bug costs $100 to fix in Gathering Requirements phase, it would be $1,500 in QA testing phase, and $10,000 once in Production.
While we can’t expect to test everything and go our entire lives deploying a product that’s 100% error free, we can make strides to safeguard software as best we can. Built-In Quality is a core principle of the Lean-Agile mindset. It helps avoid the cost of delays associated with the recall, rework, and defect fixing. The Built-In Quality philosophy applies Systems Thinking to optimize the system, ensuring a fast flow across the entire value stream, and makes quality everyone’s job. Built-In Quality practices ensure that each solution element, at every increment, meets appropriate quality standards throughout development.
One way to drive forward Built-In Quality is to adopt the Zero Bugs approach.
Without Zero Bugs approach, you typically have the overhead and increasing cost of fix, as well as a culture in which people are used to bugs being a standard part of their environment which only makes the backlog of bugs grow (the broken window theory).
Zero Bugs Approach means applying a policy where the team keeps a very low (optimally zero) threshold of open bugs. Once the threshold is reached, the team “Stops the line” and fixes the bug(s). Developers and Testers are pairing and therefore part of the bugs isn’t even reported in the bugs management tool and is fixed immediately. There is no Severity indication as a bug is a bug. Once you implement the Zero Bugs approach, you will no longer have to manage and prioritize a never ending backlog of bugs.
Progression bugs, which are related to new functionality, are fixed immediately as part of the Story Definition of Done. Regression bugs are negotiated with the Product Owner who decides whether to fix the issue or to obsolete it. If the fix doesn’t risk the iteration, the bug will be fixed immediately. If it might risk the iteration, then the PO prioritizes the bug vs. the team’s backlog, and the bug will be fixed at the latest as top priority of the next iteration.
The Zero Bugs approach is just one of many ways to install a Built-In Quality culture and to shift left the quality awareness.
AgileSparks offers a 1-day Built In Quality course for tech leads that covers how leading software companies are changing their approach to quality, in order to achieve speed and continuous delivery. This course pushes the boundaries of the quality mindset and challenges the thinking about quality ownership within the team.