Opentopia Directory Encyclopedia Tools

Software metric

Encyclopedia : S : SO : SOF : Software metric


A software metric is a measure of some property of a piece of software or its specifications.

Since quantitative methods have proved so powerful in the other sciences, computer science practitioners and theoreticians have worked hard to bring similar approaches to software development. Tom DeMarco stated, "You can't control what you can't measure" in DeMarco, T. (1982) Controlling Software Projects: Management, Measurement & Estimation, Yourdon Press, New York, USA, p3.

Common software metrics

Common software metrics include:

Limitations

The assessment of "how much" software there is in a program, especially making prediction of such prior to the detail design, is very difficult to satisfactorily define or measure. The practical utility of software metrics has thus been limited to narrow domains where the measurement process can be stabilized.

Management methodologies such as the Capability Maturity Model or ISO 9000 have therefore focused more on process metrics which assist in monitoring and controlling the processes that produce the software.

Examples of process metrics affecting software:

Criticisms

Potential weaknesses and criticism of the metrics approach:

Gaming Metrics

Industry experience suggests that the design of metrics will encourage certain kinds of behaviour from the people being measured. The common phrase applied is "you get what you measure" (or "be careful what you wish for").

A simple example that is actually quite common is the cost per function point metric applied in some Software Process Improvement programs as an indicator of productivity. The simplest way to achieve a lower cost per FP is to make function points arbitrarily smaller. Since there is no standard way of measuring function points, the metric is wide open to gaming - that is, cheating.

One school of thought on metrics design suggests that metrics communicate the real intention behind the goal, and that people should do exactly what the metric tells them to do. This is a spin-off of Test-driven Development, where developers are encouraged to write the code specifically to pass the test. If that's the wrong code, then they wrote the wrong test. In the metrics design process, gaming is a useful tool to test metrics and help make them more robust, as well as for helping teams to more clearly and effectively articulate their real goals.

It should be noted that there are very few industry-standard metrics that stand up to even moderate gaming.

Balancing Metrics

One way to avoid the "be careful what you wish for" trap is to apply a suite of metrics that balance each other out. In software projects, it's advisable to have at least one metric for each of the following:

Too much emphasis on any one of these aspects of performance is likely to create an imbalance in the team's motivations, leading to a dysfunctional project.

The Balanced scorecard is a useful tool for managing a suite of metrics that address multiple performance perspectives.

See also

References

External links

 


From Wikipedia, the Free Encyclopedia. Original article here. Support Wikipedia by contributing or donating.
All text is available under the terms of the GNU Free Documentation License See Wikipedia Copyrights for details.

Search Titles
0123456789
ABCDEFGHIJ
KLMNOPQRST
UVWXYZ?

E-mail this article to:

Personal Message: