Tony F. Hutchings,
Technical Director of Software Process and the Software
Engineering Technology Center
In the early 1980s, when the semiconductor and microprocessor
industry was still relatively young, a few wise people recognized
that the distinguishing factor for the winners in the race would
be process, i.e., base technology, design methods, and CAD tools.
They were right. Great processes are among the key reasons why
Intel is today "top of the pile" and why our Alpha AXP chips
achieve exceptionally high performance.
The formula works as follows: Brilliant, innovative people plus
outstanding process produce consistently great results,
repeatedly. This is in fact true of all product development
efforts and is also therefore the case with software in the
1990s. We have thus devoted an entire issue of the Digital
Technical Journal to software process and quality.
The most popular and effective models and methods for quality and
process improvement hold several characteristics in common:
- All put the customer first, including knowing when
customers and their requirements are being satisfied and
when we and they are achieving desired results in the
marketplace.
- All have a basis in applied measurement, using data from
the application of the processes to help determine what
changes to make.
- All are closed loop; that is, there is a clear path for
feeding back observations to improve the current state of
the process.
We are increasingly being asked: What is Digital's overall vision
for software quality and process improvement? From a completely
mature organization, the answer to that question would be
something like the following: Every project sets its own clearly
measurable, customer-driven quality goals; puts appropriate
learning and improvement practices in place; continually monitors
its progress toward its goals; and makes adjustments to process
as needed to ensure it meets its goals. Fine words, but in
reality we are not yet at that state in our corporate life. We
have, however, developed a process-improvement strategy, or
vision, which we hope will encourage all projects and groups to
move toward the kind of state described above. That vision is
best illustrated by the following diagram.
The strategy comprises three important concepts: Using Voice of
the Customer techniques to implement the intention of being a
customer-driven company; basing our process application on
assessing our current levels of performance and therefore the
opportunities for introducing new "best practices" to overcome
our weaknesses; and continuously using quantitative and
qualitative analysis to determine how we might achieve better and
better results. Our Voice of the Customer concept embraces such
powerful techniques as Contextual Inquiry (for understanding
customers' work and what might delight them in the future) and
Quality Function Deployment (for rigorously prioritizing
customers' requirements and how to satisfy them with world-class
product concepts). Our application of the Software Engineering
Institute's (SEI) approach to improving processes relies on
performing organization-wide assessments of process capability
and on developing long-lasting improvement plans, drawing on the
rich pool of best practices described in their Capability
Maturity Model. Our notion of Continuous Improvements rests on
empowering engineering teams to study the results of their work
with measurable data, analyzing the root causes of any process
problems, and systematically implementing improvements to their
processes such that they achieve better results.
The relationship between these concepts is subtle yet vital: All
our process work needs to be customer-driven, and yet these
Voice of the Customer techniques themselves need to be open to
improvement as we learn from real data coming from their
application; the advice in the SEI's Capability Maturity Model is
sound and we need to choose judiciously the most appropriate best
practices according to the state of maturity of each
organization; nevertheless, as these practices are applied, we
need to learn what is working and what is not and adjust their
definition and application accordingly; these practices should
also be chosen, at all times, to maximize the benefit for our
customers as well as for ourselves.
None of the three mutually reinforcing elements of the composite
strategy is sufficient individually to drive the massive and
sustainable changes we want to see in software engineering
process at Digital. The SEI's Capability Maturity Model
framework alone under-emphasizes the extraordinarily important
and powerful Voice of the Customer and Market; the Voice of the
Customer and Market alone provides insufficient structure on
which to hang an entire process improvement strategy; Continuous
Improvement alone, as likely to be practiced at Digital, is at a
level of intervention too low to move entire organizations
sufficiently quickly toward orders of magnitude improvement in
productivity and quality.
How are others in the industry tackling the problem of improving
their quality and productivity? Many of the techniques and
processes which we are now mastering or planning to are also in
use by other leaders in our industry. For instance, Voice of the
Customer processes (as typified by Quality Function Deployment)
are in regular use at Hewlett-Packard; Formal Inspection (called
Peer Reviews by the SEI) is practiced at Hewlett-Packard, IBM,
and a host of other industry leaders; the use of software metrics
is commonplace at Hewlett-Packard and Motorola; Continuous
Improvement teams abound at Motorola, IBM, etc.
We have made great strides in the past two years in the
application of better and more modern quality processes in
Digital's software engineering community. No longer is the
notion of using Voice of the Customer techniques really
contested; few doubt the cost-effectiveness of Formal Inspections
as a defect-detection technique; there is a ground swell of
support for the SEI's organizational assessment model and a
belief that its associated Capability Maturity Model offers a
rich source of really good advice on the steps to take to improve
one's process capability; and so on. We are even beginning to
compile case studies from within Digital that demonstrate the
positive impact of these processes, techniques, and concepts on
project quality and schedule. Of course, we need many more such
experiences before we can say that we are truly "best in class"
in these areas.
Readers may well ask how the various papers in this issue relate
to the strategy described here. Different aspects of the
application of our Voice of the Customer techniques are
emphasized in two papers: Contextual Inquiry and Rapid
Prototyping are discussed in the paper "Changing the Rules: A
Pragmatic Approach to Product Development"; an approach to using
Quality Function Deployment across different geographies is
covered in "Defining Global Requirements with Distributed QFD."
Examples of how we are applying SEI's assessment and Capability
Maturity Model approaches are covered in "SEI-based Process
Improvement Efforts at Digital." Another form of quality
assessment is shown in the paper "Assessing the Quality of
OpenVMS AXP: Software Measurement Using Subjective Data"; the
business case for implementing SEI-like programs is covered in
the paper "Modeling the Cost of Software Quality"; finally, in
the paper "TP Workcenter: A Software Process Case Study,"
concepts are shown in practice: the use of a requirements
analysis process, of defects metrics, and of overall continuous
improvement.
Digital's software engineering processes are improving quite
quickly and radically. To be completely successful will require a
high degree of commitment and significant effort by management
and engineers alike. The opportunity is, however, clearly there.
|