Page 111 -
P. 111
82 PART TWO MANAGING SOFTWARE PROJECTS
Metrics should be collected so that process and product indicators can be ascer-
tained. Process indicators enable a software engineering organization to gain insight
WebRef into the efficacy of an existing process (i.e., the paradigm, software engineering tasks,
A comprehensive software work products, and milestones). They enable managers and practitioners to assess
metrics guidebook can be what works and what doesn’t. Process metrics are collected across all projects and
downloaded from
www.ivv.nasa.gov/ over long periods of time. Their intent is to provide indicators that lead to long-term
SWG/resources/ software process improvement.
NASA-GB-001- Project indicators enable a software project manager to (1) assess the status of an
94.pdf
ongoing project, (2) track potential risks, (3) uncover problem areas before they go
“critical,” (4) adjust work flow or tasks, and (5) evaluate the project team’s ability to
control quality of software work products.
In some cases, the same software metrics can be used to determine project and
then process indicators. In fact, measures that are collected by a project team and
converted into metrics for use during a project can also be transmitted to those with
responsibility for software process improvement. For this reason, many of the same
metrics are used in both the process and project domain.
4.2.1 Process Metrics and Software Process Improvement
The only rational way to improve any process is to measure specific attributes of the
process, develop a set of meaningful metrics based on these attributes, and then use
the metrics to provide indicators that will lead to a strategy for improvement. But
before we discuss software metrics and their impact on software process improve-
ment, it is important to note that process is only one of a number of “controllable fac-
tors in improving software quality and organizational performance [PAU94].”
Referring to Figure 4.1, process sits at the center of a triangle connecting three
factors that have a profound influence on software quality and organizational per-
formance. The skill and motivation of people has been shown [BOE81] to be the sin-
The skill and gle most influential factor in quality and performance. The complexity of the product
motivation of the
people doing the work can have a substantial impact on quality and team performance. The technology (i.e.,
are the most important the software engineering methods) that populate the process also has an impact.
factors that influence In addition, the process triangle exists within a circle of environmental conditions
software quality.
that include the development environment (e.g., CASE tools), business condi-
tions (e.g., deadlines, business rules), and customer characteristics (e.g., ease of
communication).
We measure the efficacy of a software process indirectly. That is, we derive a set
of metrics based on the outcomes that can be derived from the process. Outcomes
? How do I include measures of errors uncovered before release of the software, defects deliv-
measure the
effectiveness of a ered to and reported by end-users, work products delivered (productivity), human
software process? effort expended, calendar time expended, schedule conformance, and other mea-
sures. We also derive process metrics by measuring the characteristics of specific
software engineering tasks. For example, we might measure the effort and time spent