Author - Adam Richards, COO and Director of Consulting Services at Critical Logic
In the business software development world, software testing (making sure it works) has a traditional name: “Quality Assurance,” or “QA.”
When QA signs off on a release, it’s like when a military general fires the final shot of a battle and declares, “Victory is assured.” In QA, signoff means “Quality is assured.”
But sometimes getting to quality is harder than it should be. “Testing the bugs out” at the end of a release is important but alone is an inefficient and unreliable road to quality.
Sun Tzu teaches that the best way to win a battle is to not fight it, but to prevent it. To quote from his book, The Art of War, “Subjugating the enemy’s army without fighting is the true pinnacle of excellence.”
In the world of developing complex integrated business systems, how do you build a higher quality system in the first place? If “testing the bugs out” is Quality Assurance, what is our quality insurance?
Much ink (and probably some blood) has been spilled over this methodological question. There are many answers (think agile, waterfall, etc.). And while the best approach to use varies widely depending on the context, there’s a common theme running through them all.
If “testing the bugs out” is Quality Assurance, what is our quality insurance?
Whether you’re doing waterfall, agile, ‘waterscrumfall,’ or something else, they’re all designed to eliminate ambiguity around what to build and, importantly, how to do the work. They’re all designed to ensure the right thing is built and provide a basis for proving it. Every method, every technique, every manifesto has this in common: that if we can solve the ambiguity problem, we can ensure quality.
To ensure that a quality system is delivered requires not just assurance of quality at the end, but the insurance of methodological rigor and discipline – whatever method you may choose – to address ambiguity as the root cause of poor software quality.
If you choose your method wisely and plan your approach carefully, that’s an insurance policy that increases the reliability of those assurances from QA at the end.