Professional Documents
Culture Documents
Processes
by William A. Florac and Anita D. Carleton,Software Engineering Institute
from The 9th International Conference on Software Quality
Abstract
Introduction
Over the past decade, the concepts, methods and practices associated with process
management and continual improvement have gained wide acceptance in the
software community. These concepts, methods and practices embody a way of
thinking, a way of acting and a way of understanding the data generated by
processes that collectively result in improved quality, increased productivity and
competitive products. The acceptance of this "process thinking" approach has
motivated many to start measuring software processes that are responsive to
questions relating to process performance. In that vein, traditional software
measurement and analysis methods of measuring "planned versus actual" is not
sufficient for measuring process performance or for predicting process performance.
So we believe the time has come to marry, if you will, the "process thinking" with the
"statistical thinking." when measuring software process behavior.
"Process thinking" stems from W. Edward Deming’s [Deming 86] approach to process
management:
Process Performance
First we should be concerned about process performance in terms of compliance – is
the process being executed properly, are the personnel trained, right tools available,
etc. For if the process is not in compliance, we know there is little chance of
performing satisfactorily.
If a process is compliant, the next question is–Is the process performance
(execution) reasonably consistent over time? Is the effort, cost, elapsed time,
delivery, and quality consumed and produced by executing the process consistent?
Realizing that variation exists in all processes, is the variation in process performance
predictable?
Finally if the process performance is consistent, we ask the question–Is the process
performing satisfactorily? Is it meeting the needs of interdependent processes and/or
of the needs of the customers? Is it effective and efficient?
Historically, software organizations have addressed the question of compliance by
conducting assessments, which compare the organizations’ software process against
a standard (e.g., the Capability Maturity Model). Such an assessment provides a
picture of the process status at point in time and indicates the organization’s capacity
to execute various software processes according to the standard’s criteria. However,
it does not follow that the process is executed consistently or efficiently merely
because the assessment results satisfied all the criteria.
The questions of process consistency, effectiveness, and efficiency require
measurement of process behavior as it is being executed over some reasonable time
period. Other disciplines have addressed this issue by using statistical process control
methods, specifically, using Shewhart control charts. They have come to realize that
control charts, or more appropriately process behavior charts, provide the basis for
making process decisions and predicting process behavior.
These criteria are closely related. In fact, if you can’t communicate exactly what was
done to collect a set of data, you are in no position to tell someone else how to do it.
Far too many organizations propose measurement definitions without first
determining what users of the data will need to know about the measured values in
order to use them intelligently. It is no surprise, then, that measurements are often
collected inconsistently and at odds with users’ needs. When it comes to
implementation, rules such as, "Count all noncomment, nonblank source statements"
or "Count open problems" are open to far too many interpretations to provide
repeatable results.
Although communicating measurement definitions in clear, unambiguous terms
requires effort, there is good news as well. When someone can describe exactly what
has been collected, it is easy to turn the process around and say, "Please do that
again." Moreover, you can give the description to someone else and say, "Please use
this as your definition, but with these changes." In short, when we can communicate
clearly what we have measured, we have little trouble creating repeatable rules for
collecting future data.
Next, the notions of homogeneity and rational subgrouping need to be understood
and addressed. Homogeneity and rational subgrouping go hand in hand. Because of
the non-repetitive nature of software product development processes, some believe
it is difficult to achieve homogeneity with software data. The idea is to understand
the theoretical issues and at the same time, work within some practical guidelines.
We need to understand what conditions are necessary to consider the data
homogeneous. When more than two data values are placed in a subgroup, we are
making a judgement that these values are measurements taken under essentially
the same conditions, and that any difference between them is due to natural or
common variation. The primary purpose of homogeneity is to limit the amount of
variability within the subgroup data. One way to satisfy the homogeneity principle is
to measure the subgroup variables within a reasonably short time period. Whether
we are talking about producing widgets or software products, the issue of
homogeneity of subgroup data is a judgement call that must be made by one with
extensive knowledge of the process being measured.
The principle of homogeneously subgrouped data is important when we consider the
idea of rational subgrouping. That is, when we want to estimate process variability,
we try to group the data so that assignable causes are more likely to occur between
subgroups than within them. Control limits become wider and control charts less
sensitive to assignable causes when containing non-homogeneous data. Creating
rational subgroups that minimize variation within subgroups always takes precedence
over issues of subgroup size.
so, corrective action must be taken if the process is to be returned to its original
(characteristic) behavior.
We must be careful not to misinterpret the limits on the individual observations and
moving ranges that are shown in the control chart. These limits are estimates for the
limits of the process, based on measurements of the process performance. The
process limits together with the center lines are sometimes referred to as the "voice
of the process." (Figure 4.)
The performance indicated by the voice of the process is not necessarily the
performance that needs to be provided to meet the customer’s requirements (the
voice of the customer). If the variability and location of the measured results are
such that the process, albeit stable, does not meet the customer requirement or
specification (e.g., produces too many nonconforming products), the process must
be improved. This means reducing the process performance variability, moving the
average, or both.
Avoiding Pitfalls
When analyzing process performance data, you must be concerned that you have
identified all sources of variation in the process. If a conscious effort is not made to
account for the potential sources of variation, you may inadvertently hide or obscure
variation that will help you improve the process. Even worse, you may mislead
yourself and others with a faulty analysis. When data are aggregated, you will be
particularly susceptible to overlooked or hidden sources of variation. Overly
aggregated data come about in many ways, but the most common causes are:
It is important to know whether or not the component design process is in control for
the different types of defects found. Therefore, XmR charts were constructed by
plotting the number of defects for each type in the sequence in which the
components were completed. The control charts for these individual values are
shown in Figure 7. Here we see that the disaggregated data for the numbers of
defects found suggests unstable conditions in seven of the eight control charts.
Several points are out of bounds, and one chart shows a run of eight points below
the center line. The charts for individuals show that as many as eight different
components may have been associated with the instabilities. This suggests that
reasons for the unusual variations be sought. If reasons are found, actions can be
taken to fix the problems that caused the unusual variations.
Note that when assignable causes are found and the corresponding points are
removed from calculating the process control limits, the control limits will become
narrower, and the performance of the process will be more predictable for each
defect type.
This example shows that a single control chart of aggregated data as in Figure 6 may
be ineffective for identifying instabilities or for pointing to potential opportunities for
improvement unless the aggregated data is demonstrably stable as well. The more
sources of nonconformity that are combined on one chart, the greater the likelihood
that the chart will appear to be in control [Wheeler 92]. Thus, although charts such
as the one in Figure 6 may provide a useful record of what is happening, they are not
very useful for improving a process. Due to the smoothing produced by aggregating
the effects of several sources of error, control charts for the total number of defects
can easily fail to identify both the timing of instabilities and the potential sources of
assignable causes. Figure 8 shows the control chart for total defects when the
assignable causes have been removed from the process. Note the improvement in
process performance compared to that reflected in the control chart in Figure 6.
Figure 7: Control Charts for Each Defect Type
Control charts can be used to serve many different purposes. Control charts can be
helpful for monitoring processes from release to release to compare overall
performance. They can be used for making process adjustments to ensure that
stability is maintained for a process on a daily or weekly basis. Most importantly
control charts may be used for continuous improvement of a process that is stable
and capable. It is important to keep in mind however, that the control charts provide
the most value to the people or team where the process knowledge resides.
Management can also help set the example of how not to use the control charts.
While the control charts can be used to improve personal performance, management
should not misuse this tool or the data. Management has to remember that the old
saw " we will continue the beatings until morale improves" comes into play when
ever measurements are used as part of the "beating." Clearly, dysfunctional behavior
is likely to occur if employees perceive that measurements are being used in this way
[Austin 96].
Summary
There is evidence that Shewhart’s control charts can play a significant role in
measuring process performance consistency, and process predictability [Paulk 99].
Those that have been successful, have come to recognize it is extremely important to
1) understand the concepts of variation, data homogeneity, common cause systems,
and rational subgrouping, and 2) fully understand the process and subprocesses
being measured. Furthermore, they have used the control charts to measure process
performance at the sub process (and lower) level realizing that there is far too much
variation in the overall process to be helpful in identifying possible actions for
improvement.
These software organizations have come to appreciate the value added when control
charts are used to provide engineers and managers with quantitative insights into
the behavior of their software development processes. In many ways the control
chart is a form of instrumentation–like an oscilloscope, or a temperature probe or a
pressure gauge–it provides data to guide decisions and judgements by process
knowledgeable software engineers and managers.
References
Austin 96 Austin, Robert D., Measuring and Managing Performance in
Organizations, Dorset House Publishing, New York, New York, 1996.
Britz 97 Britz, Galen, Emerling, Don, Hare, Lynne, Hoeri, Roger, Shade, Janice,
"How to Teach Others to Apply Statistical Thinking." Quality Progress
(June 1997): 67-78
Deming 86 Deming, W. Edwards, "Out of the Crisis", MIT Center for Advanced
Engineering Study, Cambridge, MA, 1986.
Florac 99 Florac, William A. and Carleton, Anita D., "Measuring the Software
Process: SPC for Software Process Improvement", ISBN:0-201-60444-
2, Addison-Wesley, Reading, MA, May 1999.
Grady 92 Grady, Robert B., "Practical Software Measurement for Project
Management and Process Improvement", ISBN: 0137203845, Prentice
Hall, Englewood Cliffs, NJ, May 1992.
Humphrey Humphrey, Watts S., "Managing the Software Process", ISBN 0-201-
89 18095-2, Addison-Wesley, Reading, MA, 1989.
Keller 99 Keller, Ted, "Applying SPC Techniques to Software Development–A
Management Approach, " Proceedings from the 1999 Software
Engineering Process Group Conference, Atlanta, Georgia, March 1999.
Paulk 99 Paulk, Mark C., "Practices of High Maturity Organizations", Proceedings
of the 1999 Software Engineering Process Group Conference, Atlanta,
Georgia, March 1999.
Wheeler 92 Wheeler, Donald J. & Chambers, David S. "Understanding Statistical
Process Control". Knoxville, Tenn.: SPC Press, 1992.
Wheeler 98 Wheeler, Donald J. and Poling, Sheila R., "Building Continual
Improvement: A Guide for Business", SPC Press, Knoxville, TN, 1998.