Half a year ago James Bach began with a blog series about Quality is dead. I tried to get a handle on it some time ago, but there is still something striking about quality and the fact that I don’t support James’ Hypothesis.
The Zeroth Law of Quality
First of all James gives a very good introduction into his perceptions on quality in current (half a year ago) systems. While wading through his initial entry, one bold phrase caught my eyes:
When testing becomes just a symbolic ritual, any method of testing will work, as long as it looks impressive to ignorant people and doesn’t cost too much.
As Weinberg states in the Quality Software Management series, the Zeroth Law of Quality is
If you don’t care about quality, cou can meet any other requirement.
James elaborates this pretty well. What you have to keep in mind, though, is that James confuses testing with Quality improving techniques. Of course, testing is one part of all the efforts we spent in improving quality in our project, but it shouldn’t stay the only.
What is Quality?
So, as I already introduced Jerry Weinberg here, what is quality? Quality is something very ambiguous. You will find cultures in the software business out there who claim everything to be part of quality to some degree. Assuming I have ten readers of this blog entry, I claim there are at least five different understandings about what quality is. This may include quality being a qualitatively high process followed while developing your software, a software passing all its tests (note that tests is also a vague and ambiguous term, as Michael Bolton recently pointed out), software satisfying the customers, and so on. Occasionally you already noticed these are also some vague description, about what quality might mean to the persons claiming them. What is your definition of quality? Weinberg has one that worked well during the past fifteen year:
Quality is value to some person.
Though this term is also rather vague, it brings in a new facet to the discussion. Software is written from people, managed by people and written for people. There are a lot of persons involved in building software. So the ultimate question to follow up on the Quality definition is: Whose value counts? Which value to which person shall I have an eye upon? Who defines what is qualitative high? My boss? The CEO? My customer? My test manager? My development manager? The developer? The business analsist? As you can see there are several different quality understandings at play in the software culture. Personally I tend to choose the value of the customer, that is the one paying for getting the software, is the value I should care about most. This does not include the project stakeholders at the company I’m working. This includes the end user, the purchaser of the software.
Is quality really dead?
Thus far I have not come to the point where I think that quality is not dead. James hypothesis is that quality is dead. When I combine this with the message from Jerry Weinberg, I conclude that no one is valueing software anymore. If quality is dead, and quality is value to some person, then I can conclude that value to any person is dead. To disprove this I simply have to find someone whose value is not dead.
This is rather easy. Personally I claim that I value much in software. I value most portions of my linux box. From time to time I have to fight with the installations under Windows on my company’s box, but I am able to chose quality software at home and at work. There are some constraints, though. Due to licensing I am forced to use Firefox at work, while I use Opera at home. But I can live with both. Personally I claim to be mature enough to choose whether or not to pick the latest version of any software I use, though I apply a cargo cult of “always update” there. But it’s my decision, and when it comes to software I try to keep myself in the early adopter section of changes.
Quality is alive, but…
James being a clever person has of course a point. It’s a point I fully support. Fewer and fewer people get to value their software. Personally I sense a a lack of caring about quality products. But I wouldn’t go as far as James did and claim quality to be dead never being able to bring it back to live – ever. When reading through Quality Software Management Volume 2 – First-Order Measurement you may occasionally find out that I simply applied the Data Question (Who’s value is dead? Why?) to James’ hypothesis, but by answering it I was able to find out why I disagreed with James’ model over half a year ago.
What do I do tomorrow?
Personally I raise the claim to bring back quality understanding into people’s mind. The perceived level of quality in most current software and software systems is low. But I wouldn’t got as far as to claim quality being dead. The thing we need to make sure is to raise the expectations and abandon software products that do not fulfill our personal requirements. After all it may be our job at work to care for the quality in our own software as a developer, as a tester as a project manager, as a CTO, as a CEO, as a customer. There is noone despite ourselves that can take that burden from us. If we become a customer or a user of software, we should also keep this in mind and refuse to pay for crappy software or even bring it back to the local store that sold us that program – now. In the end quality is in the eye of the beholder.