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
   106   107   108   109   110   111   112   113   114   115   116