8-steps metrics program - an introduction to metrics |
What Are Software Metrics?
Software metrics are measures that are used to quantify software, software development resources, and/or the software development process. This includes items which are directly measurable, such as lines of code, as well as items which are calculated from measurements, such as earned value.
Everyone who develops software uses some kind of software metrics. However, when asked what software metrics are, the tendency is to restrict the response to software size measurements, such as lines of code or function points. In reality, software metrics include much more than primitive measures of program size.
Software metrics include calculations based on measurements of any or all components of software development. For example, consider the system integrator who wishes to determine the status of a project’s test phase. He or she will undoubtedly ask for information on the proportion of tests that have been executed, the proportion that were executed successfully, and the number of defects identified. These measures are all examples of primitive - yet useful - software metrics.
Consider the engineer who is responsible for improving the performance of a software product. He or she will consider items such as memory utilization, I/O rates, and the relative complexity of software components. These are also examples of software metrics.
There is nothing overly complicated about software metrics. In fact, the biggest challenge in establishing an effective metrics program has nothing to do with the formulas, statistics, and complex analysis that are often associated with metrics. Rather, the difficulty lies in determining which metrics are valuable to the company, and which procedures are most efficient for collecting and using these metrics.
The SPC conducted research with a number of software developers and managers, many from well-established companies -- few of whom had much experience with software metrics. A common assumption emerged: software metrics are used simply to measure programmer productivity against an industry standard.
Apart from providing little value, such comparisons are apt to foster resentment among the programming staff, and earn little support for a metrics program.
A healthy metrics program focuses on much more than the measurement of programmer productivity. Consider these areas of software development which can benefit from a well-planned metrics program:
- project management
- product quality
- product performance
- development process
- cost and schedule estimation
The key to the effective use of software metrics within an organization is to prepare a plan describing how metrics will be used to meet strategic management goals.
This manual is a guide to devising and implementing such a plan.