Recently a discussion on the famous quote from Jerry Weinberg on
Quality is value to some person.
arose. I already mentioned it some time earlier restating that quality is ambiguous as different people understand different things when they hear the word quality.
In fact, the ambiguity of the word quality has been mentioned by Jerry Weinberg at an audience, where he asked participants to raise their hands, if they like quality, they’re neutral for quality, or whether they dislike quality. The whole audience raised their hands. As Jerry started to doubt the statistical representation of the audience, he asked a control question: “What about apple pie?” The answers to this questions showed the statistical distribution of the audience. Thereby Jerry concluded that the word quality means different things to different people. So, the word quality is at least ambiguous in the sense that everyone may have a different understanding about it.
Michael Bolton introduced me to an abstraction of the popular Weinberg statement:
X is X to some person
that is the Relative Rule. The Relative Rule holds for quality (“quality is quality to some person”) as well as for several other things, like complexity (“complexity is complexity to some person” especially if there is a lack of simplifying mental model), beauty (“beauty is beauty to some person” or more popular “beauty is in the eye of the beholder”), difficulty (“difficulty is difficulty to some person” especially if you lack the skills. Try explaining computer to an ancient knight.), and even apple pie (“apple pie is apple pie to some person” as you might find out at your next birthday party serving apple pie).
But as Michael Bolton recently inspired in an Weekend Testing discussion, there is also a time dimension to it. Here is the chat excerpt holding the relevant parts (published with permission from Michael Bolton):
Michael Bolton:“Relevance” is subject to The Relative Rule.
Anne-Marie Charrett Michael, can you share what you mean by the Relative Rule?
Michael Bolton I coined The Relative Rule, inspired by Jerry Weinberg’s definition of quality as “value to some person”. The Relative Rule goes like this: For any abstract X, X is X to some person.
Markus Gärtner Relevance is relevance to some person, just like quality is quality to some person and hot weather is hot weather to some person.
Michael Bolton What this means is that “irrelevant”, for example, means “irrelevant to some person, for some purpose, at this time.” Which leaves open the idea that it might be relevant to some other person, for
some other purpose, or even to you at some other time.
Markus Gärtner You just put in the time dimension there. Could be quality be to quality to some person at some time?
Michael Bolton Absolutely. People change. In many ways you’re the same person that you were ten years ago, but it many ways you’re not. You’re the same person you were yesterday, too, but in some ways you’re not (you’ve got a day’s more life experience than that person. So when I say “to some person”, I mean a certain person at a certain point in time.
This opens the time dimension to the Relative Rule. Since X is X to some person, and that person’s perception may change over time, especially if market conditions or global economy changes, X is also X to some person at some time. This means that our perception of quality may change over time based upon releases of competitors (compare OpenOffice before MS Office 2007 was released with the time after that release; how do you perceive it? did it change?). This also holds when we learn new tools and techniques. Reflecting back on a recent project I noticed that pairwise testing could have helped us reduce the amount of tests to run. May perception about that initially changed when Justin Hunter gave me a live online presentation and we drifted into some discussion around it, and it especially changed while reading a book from Lee Copeland most recently. So, my perception about the problem one year ago compared to one month compared to today greatly varies based on the knowledge I acquired in the meantime.
Interestingly the Time Trigger (as I started to call it) also holds for other applications of the Relative Rule. Complexity is complexity to some person at some time may change with new skills we acquire. Beauty may change over time, just as difficulty, and finally our perception of apple pie may change when we taste a particular piece of an awful or awesome pie.
Even more interestingly, the Time Trigger makes the human factor in software development even more transparent. Since the code I’m looking at today may be pretty awkward to deal with in maintenance tomorrow or even half a year in the future, I may want to prepare myself for this. This is the essence of Alistair Cockburn‘s Cooperative Game. We leave behind markers during our development efforts so that we can remind them in the future, that is at a different time. For quality we may leave markers so that we remember what we perceived to be high quality at this time. We can then revisit these markers and either abandon them or appreciate them. Since software development is a human activity, we need to remember the human aspects of our very nature. Since our understanding of a situation is heavily influence by the time we are faced with it, it’s vital to understand the Time Trigger in company of the Relative Rule.
Finally, Jerry Weinberg opens to think about the quality as being value to some person in terms of questions. Whenever someone says something about quality, we should ask who is the person behind the quality statement, and what does the individual value. We expand the Time Trigger to these questions, and conclude that we should ask ourselves who the person behind the quality statement is, what does the person value, and at what time? If the project shall deliver a quality product in one year, that perception may be different than a quality product for ten years ago was.
Putting all together Political/Emotional Dimension of Quality, Bolton’s Relative Rule, and the Time Trigger (which I would like to attribute to Bolton as well) explain the impossibility of testing quality into a product. Since quality for a person today may be vastly different to quality for the same person in a year, we are unlikely to build quality into a product and leave it there. Quality needs to be firstly understood (who is the person behind the quality statement?), incorporated into the product, and maintained there. Putting it a different way: Software is under development until it is abandoned.