True 100% bug free software suggests a state of flawlessness, which is as plausible as pigs flying in a hell that has f*cking frozen over.
Profanity-laced hyperboles aside, our opening line is deeply rooted in one truth: there is no perfectibility when it comes to “zeros and ones”.
There are countless testing faux pas to cover. For instance, the false cliché that under the “right” conditions 100% bug-free is feasible. Pseudo logic we can’t wait to knock the bottom out of in a future rant. First, we are going to concede to our compulsion by addressing a pet peeve of ours. It is personified by what we charitably refer to as the “I am Spartacus" moment. It usually manifests in a meeting during the final stretch of a test phase under the pressures of an imminent Go / No-Go decision. It’s that moment when a middle manager, under a deep sense of defiance on behalf of the project, states the emotive claim, “I will not sign off until there are zero defects!” The concrete value in that public assertion is in this person outing themselves as either knowing very little about testing software or having populist political motives.
Regarding those with no hidden political agenda, we will concede that the real objective of testing can be counter-intuitive. It is a relatively common error to believe that the intrinsic purpose of the test phase is to ensure that the system is 100% error free. Therefore, it should come as no surprise when the false assumption “zero defects” is so readily commandeered. Yet, in Brooks’ software engineering bible The Mythical Man-Month, the compelling case is made that in a system that is suitably complex there is a point at which the number of errors can no longer be reduced. And any endeavor to resolve those errors usually results in introducing other errors. This is a long established understanding within the software development community. Even American idol Steve Jobs addressed it as far back as Apple's 1997 Worldwide Developers Conference.
Therefore, it is an indictment on an organization today that allows “zero defect”, a well-known corrosive assertion, to be so pervasive that it fosters — if not encourages — well-meaning middle managers into an “I am Spartacus" moment. Unfortunately once “Spartacus” has uttered this toxic platitude, he or she is likely to become unreceptive to factual rebuttal, as can be expected when one makes incorrect proclamations in a political environment. And when the underlying motive isn't in good faith, we believe it is within bounds to interpret it as a deceptive maneuver by someone that hasn’t gotten their way on the project or has made an egregious error. And this is their chance to deflect attention elsewhere.
Nevertheless, whether done with malice or not, the fallout from the “I am Spartacus" moment typically ends up with the organization hemorrhaging a considerable amount of money. Either from the pursuit of this unreachable goal or the investment in retracting the statement of some reckless pencil pusher in search of populist glory. The latter when expressed with conviction in a politically charged environment, can take an Otto von Bismarck level of diplomacy to get everyone back in agreement.
Fortunately, the “I am Spartacus” moment can be circumvented all together through common sense and some rudimentary project control instruments. From the start, the expectations as to what will be achieved during the test phase should be understood and agreed upon via well-defined exit criteria. And the true drivers to define boundaries preventing the "never-ending search for defects" should also be covered, such as limitations due to budget and time-to-market expectations. In this way, stakeholders more easily buy into the relevant trade-offs and the realistic conditions by which the software would be ready to launch (“zero defects” not being one of them).
Also, it would be worthwhile to remind them that this process should already be very familiar. Everyone with an Apple or Samsung device knows intimately that new products are put into the market all of the time — which include defects! So even for the giants among us, “zero defects” is not an achievable nor sought after target. “Do you really think Bill Gates ever said Microsoft will not release Windows until there are zero-defects?”, is the rhetorical question to drop the mic on.
If after all of that, someone continues to be unreceptive to the fact that software can only be tested as thoroughly as possible within the boundaries of the project, we suggest migrating the conversation to a bar — where people tend to be a little more receptive to uncomfortable truths. And if that doesn’t work, keep drinking alone, we hear wonderful things happen after that.