Delusions of Quality

By Marie A Lenzi
Object Magazine June 1996

Another favorite story of mine is a conversation with a prospective customer focused on quality development services... or at least I was. The response from the prospect was, and I quote! "Mediocre is just fine." (Could I make this up?) Needless to say, that ended that line of discussion.

Recently, the issue of quality has been cropping up. I find this curious because my course offerings have included quality measures for 8 years now and the are seldom requested... until lately.

I sense a familiar pattern. Simply, it's "learn it, then perfect it". Kind of a first things first. I don't know if I agree with the pattern, but if this is the case, it appears that we are getting through the "learn it" portion of object technology and are approaching the "do it well" phase. This, of course, surfaces the question "what is well?"

Broad Quality Parameters

Typically, quality is defined as conformance to standards. That may appear to be vague, but not necessarily. This notion of standards can easily relate to what is valued by your organization. Do you value completeness, correctness, consistency, responsiveness...? Or do you value the budget? For this discussion, let's define what we value as:
  1. Completeness of product, that is, all user-requested functionality is present.
  2. Correctness of product, all user-requested functionality is performed accurately, product doesn't crash.
  3. Consistency of product both externally and internally. Externally for usability, internally for maintainability, and ultimately, flexibility.

Object Technology and Quality

It is quite clear that the touted benefits of object technology are strongly entrenched in issues of quality. Quality of process, quality of product, quality of people, quality of management and leadership. It is also quite clear that, like all things, if quality is not actively addressed, you don't get any. The data Jesuits claim "model the data and everything else will just fall out". Yeah, right! In the same way, quality does not just happen -- you have to do it deliberately.

Quality of Process

In too many cases, quality of process means getting one. More than 80% of American development organizations have a SEI Process Maturity level of 1 (initial), euphemistically referred to as chaos. The presence and maturity of the process have a direct and driving bearing on most other tangible quality elements. Improved quality of product completeness, correctness, or consistency cannot be expected without some maturation of the process. In fact, improved product quality can be directly traced to an improvement in the Process Maturity level. Improvements in the Process Maturity do not have to be traumatic. Small incremental steps are recommended, which means as slowly or as quickly as you can tolerate.

Improvements in the development process are also easier to sell to the nontechnical segment of your organization. Those outside the technology space understand process, that is if there is none, then there are quality and delivery problems. Addressing the process with business types is a productive effort. Including them in the process may require negotiation and leadership skills.

Quality of Product

Zero defect is the buzz word. Defects are manifest in two ways; either the software fails to function, as in it crashes, stalls, or otherwise hangs the machine, or more perilously, a business function executes incorrectly. Software that hangs up the system is fairly easy to detect and hopefully to repair, although sometimes not (where is that leak?). It's the defective business functionality that can really get you. Suppose you have an inventory control system with a little hole in it...say, a little audit step that has been missed. Suppose tuxedoes are slipping out this little hole into the back of a waiting truck?

Another business issue we are more aware of today is old, broken business process. We can implement a piece of business functionality precisely as specified by the user. The user can test, verify, and sign off on the functionality, but it still can be inherently WRONG strictly from a business process point of view. This is where active, accountable participation by the business user in the development process comes into play. Getting so analytically close to business functionality frequently forces the snakes out from under the rocks. Then when it is clear there is a problem, the right people can step in before it's carved in electrons.

Quality of People

Now for the tough part. Process and product are tangible and impersonal and, to some extent, mechanical. The sensitive, difficult, and illusive topics are those of people.

Match task with capacity. Are your people doing the jobs for which they are best suited? Do the have the necessary interest, talent, skill, and training to deliver a quality performance? If so, you typically get a high quality performance. (Everyone has "bad hair days.") If not, you are not getting a quality performance. Train them or change them.

Match task with enthusiasm. Do the people doing the jobs care? If so, you typically get a high quality performance, ("Bad hair days" not withstanding.) If not, why not? If they are apathetic and/or slothful, you can fix this too. Unfortunately, most of this is not self correcting. However, as a good manager and as a leader, you are typically in a position to correct these situations. Active measures must be taken.

Do You Really Value Quality?

The Malcom Baldridge Award has made many acutely aware of quality. However, I have seen too many of these awarded in places where I have direct experience with a severe lack of quality, at least by my standards. Do organizations merely pay lip service to quality? Is it just a lot of posturing? In many cases, I think the answer is YES to both of these questions. Phil Crosby declared the "Quality is free." However, I've always had a tough time with this. There is another aphorism. Of GOOD, CHEAP, and FAST, pick 2, only 2. Pragmatically, quality is not free. It takes time/money to build quality into a process and a product. It takes money and motivators to attract and keep quality people and to repair those not performing at the peak of quality. Ever hear, "We'll test until the delivery date." So much for quality. What happens to the process or to peer reviews when the delivery date starts to slip? Where do the architecture and specifications go when the user wolf is at the developer's door? Don't tell me "we'll fix it after deployment."

In too many cases, the delivery of software, no matter what the condition, is valued over the delivery of complete, correct, and consistent, ie quality software. In my opening story, the prospect was looking for a cheap labor. He didn't want to have to pay for a talented and skilled person. He valued his budget over quality. But this raises the question, "Have you budgeted for quality?" Has the customer bullied and intimidated you into a price that precludes the development of a quality product? I have to believe that the people doing the work want to deliver a quality product. The opposite would imply abject disdain for the customer. I have to believe that a portion of substandard quality falls into the lap of the customer. I want/need it NOW, or this is all I will pay, or here's what I want, don't bother me again until it's finished. Something has to give. Apply too much pressure and an explosion is imminent. Open a valve and the threat subsides. The GOOD, CHEAP, FAST thing keeps coming back. Quality has to be built in from the absolute beginning. You can't patch it in later. It takes direct effort to achieve it. Either do it or not, but decide up font. The point remains. This quality thing is iffy and, in many cases, may be contradictory to what is truly valued.

Thu Nov 13 15:57:47 2003