“Quality is value to some person”. – Jerry Weinberg
Saw this quote misattributed recently, but Jerry Weinberg threw down the gauntlet in his classic book Quality Software Management: Volume 1, Systems Thinking, and the software testing industry has been wrestling with every word in that short sentence ever since. What is “quality”? How do you determine “value”? Who is that “person”?
Over the years those words have been misquoted, modified, and added to multiple times, but I can’t ever remember adopting any of the new language. There have been many attempts to define quality, mostly trying to wrestle software development into manufacturing models and flow charts which IMO, have added nothing to the public debate.
The other canard that gets whipped out frequently by <cough, cough> consultants trying to sell you something, is that software quality is measured by the absence or presence of defects. There’s been loads written and said about the impossibility of defect free software, so my only advice when your hear someone start banging on about that is to watch your wallet!
In my business, enterprise tech, the words Jerry chose are loaded with dependencies on context. Sometimes quality means “can we trade?”. Sometimes “value” is an operational cost save we’re trying to meet. Sometimes the “person” is a regulator. But EVERY time we start a project we need to have the semantic discussion of what we actually mean when we are using those words!
I might just be getting cynical in my old age, but I think our business could do with a lot of unwinding the “why make it simple when it can be complicated” approach to software quality. I use those word to clarify my approach to testing, to understand what people mean when they talk about software quality, and as a heuristic for ensuring I’m getting as close as I can to delivering the value my testing “client” wants.
Might be simple, but it works.
As a bonus, I had the honour of interviewing Jerry a few years ago and I think it’s worth a re-listen every once in a while…enjoy!