Page 228 -
P. 228
CHAPTER 8 SOFTWARE QUALITY ASSURANCE 199
approach to the elimination of the root causes of product defects. Throughout the
1970s and 1980s, their work migrated to the western world and was given names
2
such as “total quality management” (TQM). Although terminology differs across dif-
TQM can be applied to ferent companies and authors, a basic four step progression is normally encountered
computer software.
The TQM approach and forms the foundation of any good TQM program.
stresses continuous The first step, called kaizen, refers to a system of continuous process improvement.
process improvement. The goal of kaizen is to develop a process (in this case, the software process) that is
visible, repeatable, and measurable.
The second step, invoked only after kaizen has been achieved, is called atarimae
hinshitsu. This step examines intangibles that affect the process and works to opti-
mize their impact on the process. For example, the software process may be affected
by high staff turnover, which itself is caused by constant reorganization within a com-
pany. Maybe a stable organizational structure could do much to improve the quality
of software. Atarimae hinshitsu would lead management to suggest changes in the
way reorganization occurs.
While the first two steps focus on the process, the next step, called kansei (trans-
WebRef lated as “the five senses”), concentrates on the user of the product (in this case, soft-
A wide variety of ware). In essence, by examining the way the user applies the product kansei leads to
resources for continuous improvement in the product itself and, potentially, to the process that created it.
process improvement and Finally, a step called miryokuteki hinshitsu broadens management concern beyond
TQM can be found at
deming.eng.clemson. the immediate product. This is a business-oriented step that looks for opportunity in
edu/ related areas identified by observing the use of the product in the marketplace. In the
software world, miryokuteki hinshitsu might be viewed as an attempt to uncover new
and profitable products or applications that are an outgrowth from an existing
computer-based system.
For most companies kaizen should be of immediate concern. Until a mature soft-
ware process (Chapter 2) has been achieved, there is little point in moving to the next
steps.
8.3 SOFTWARE QUALITY ASSURANCE
Even the most jaded software developers will agree that high-quality software is an
important goal. But how do we define quality? A wag once said, "Every program does
something right, it just may not be the thing that we want it to do."
Many definitions of software quality have been proposed in the literature. For our
purposes, software quality is defined as
? How do we Conformance to explicitly stated functional and performance requirements, explicitly doc-
define
software quality? umented development standards, and implicit characteristics that are expected of all pro-
fessionally developed software.
2 See [ART92] for a comprehensive discussion of TQM and its use in a software context and
[KAP95] for a discussion of the use of the Baldrige Award criteria in the software world.