"That's great!" I agreed. "What does your Quality Plan look like?" I wondered.
"The testers are putting their plans together; you'll have to ask them" he said absently as he admired his beautiful Project Plan.
"Yes", I replied, "I know they are preparing test plans. But I am asking about your quality plan. How does your plan help you to assure that you will build adequate quality into the system?"
Ralph stared at me blankly for a minute. Then he stammered, "The plan doesn't say it in so many words, but we're going to do our best work and stay on top of things. - Is that what you mean?"
"Ralph, old buddy", I explained, "You planned the scope of work you were going to do, the budget you would stick to, and the schedule for delivery because you don't want to leave any of those things up to chance! The quality of the product you will produce is no less important. And just like those other three things, if you don't plan it, you're leaving it up to chance."
"Whoa!" Ralph mused. "I hadn't thought about it that way." He pondered for a few minutes, and then wrinkled his brow. "I don't think I've ever even seen a Quality Plan before! What does it include? And how do I do it?"
A willing learner! What a pleasure to work with. This is the tutorial I gave him.
Planning to produce a good quality product is a three-step process. First we must agree about what the word "good" means on this project. Then, we must set numerical goals for quality so we can understand our status against those quality goals. And finally, we must determine the specific things we will do on this project in order to achieve the quality goals we have set.
Many of us have little experience with setting quality goals, so trying to do so can be intimidating. But we all have the experience we need to get started. And after setting quality goals for the first time, it will seem less daunting on our next project.
The easiest way to get started on quality goals is to spend some time considering the types of things that have made us (or our customers or management) judge systems to be of "poor quality" in the past. Often, they were buggy (i.e. had too many defects to be used easily). Maybe they were slow (i.e. insufficient response times or throughput capability). They may have been insecure. Or important features may have been overlooked. Try to generate a complete list of the quality dimensions that have proven to be important in the past.
With that start in mind, we can turn our attention to the system this project will build. Which of those items stands out as being important this time? Does this project have other aspects that will be uniquely important? What are the dimensions on which the stakeholders will judge the quality of the system we will build? These are they areas where we need to set quality goals!
"Several of these sorts of things came out as we were defining our project Success Criteria." Ralph ventured. "But on my last project, the things they complained about at the end weren't on the list at all! I can see the value in this sort of historical brainstorming!"
"Quality" is not something that can be expressed in uniform terms. We must consider the various dimensions of quality that we care about and determine how we can measure each of those dimensions. For example:
"Actually", I explained, "your best guidance comes from past projects."
If you can identify one or more projects that produced acceptable results for a particular dimension, then get the data from those projects and compute the values they achieved on that metric. Your goal for this project should be similar to the acceptable performance you achieved on those prior projects.
More often, the prior projects you can identify are those on which the key quality attributes fell short of expectations. In those cases you still want to compute the metrics achieved on those projects. But your goals for this project should represent an incremental improvement over past performance. Be sure that the amount of improvement is reasonable. Unless this project will be considerably different from those past projects, you should not expect that you can make dramatic improvements in quality.
"Great!" Ralph beamed. "Quality planning sounds pretty easy. It shouldn't take me too long to bang those numbers out!"
But I burst his bubble: "Establishing quality goals is not the end of the story. In order to achieve those goals, you must do something!"
There are three types of quality-related activities you can plan for on your projects, detection, correction, and prevention.
Defect detection activities are designed to find defects. Testing is the activity that we usually think of, but it usually happens late in the project when correction activities are likely to take a lot of time. We can improve quality performance by doing more detection activities, doing them earlier in the project, and assuring that we do them well. For example:
But the biggest payback is in defect prevention activities. This usually is a matter of looking at the types of problems you have had on prior projects and improving the technical methods to keep them from happening again. For example:
"You bet!" Ralph enthused. "Give me another day or so, and I'll have a complete Project Plan that doesn't leave anything up to chance -- not even quality!"