Page 226 -
P. 226
CHAPTER 8 SOFTWARE QUALITY ASSURANCE 197
line for the current cost of quality, identify opportunities for reducing the cost of qual-
ity, and provide a normalized basis of comparison. The basis of normalization is
almost always dollars. Once we have normalized quality costs on a dollar basis, we
have the necessary data to evaluate where the opportunities lie to improve our
processes. Furthermore, we can evaluate the effect of changes in dollar-based terms.
Quality costs may be divided into costs associated with prevention, appraisal, and
? What are the failure. Prevention costs include
components
of the cost of • quality planning
quality?
• formal technical reviews
• test equipment
• training
Appraisal costs include activities to gain insight into product condition the “first time
through” each process. Examples of appraisal costs include
• in-process and interprocess inspection
• equipment calibration and maintenance
• testing
Failure costs are those that would disappear if no defects appeared before shipping a
product to customers. Failure costs may be subdivided into internal failure costs and
Don’t be afraid to incur external failure costs. Internal failure costs are incurred when we detect a defect in
significant prevention
costs. Rest assured our product prior to shipment. Internal failure costs include
that your investment • rework
will provide an
excellent return. • repair
• failure mode analysis
External failure costs are associated with defects found after the product has been
shipped to the customer. Examples of external failure costs are
• complaint resolution
• product return and replacement
• help line support
• warranty work
As expected, the relative costs to find and repair a defect increase dramatically as
we go from prevention to detection to internal failure to external failure costs. Fig-
ure 8.1, based on data collected by Boehm [BOE81] and others, illustrates this phe-
nomenon.
Anecdotal data reported by Kaplan, Clark, and Tang [KAP95] reinforces earlier cost
statistics and is based on work at IBM’s Rochester development facility: