Concepts: MetricsTopicsWhy do we
measure?
We measure primarily to gain control of a project, and therefore to be able to manage it. We measure to evaluate how close or far we are from the objectives we had set in our plan in terms of completion, quality, compliance to requirements, etc. We measure also to be able to better estimate for new projects effort, cost and quality, based on past experience. Finally, we measure to evaluate how we improve on some key aspects of performance of the process over time, to see what are the effects of changes. Measuring some key aspects of a project adds a non-negligible cost. So we do not measure just anything because we can. We must set very precise goals for this effort, and only collect metrics that will allow us to satisfy these goals. There are two kinds of goals:
Examples
These general management goals do not translate readily into metrics. We have to translate them into some smaller subgoals (or action goals) which identify the actions project members have to take to achieve the goal. And we have to make sure that the people involved understand the benefits. Examples The goal to "improve customer satisfaction" would decompose into:
The goal to "improve productivity" would decompose into:
Then some of the subgoals (but not all) would require some metrics to be collected. Example "Measure customer satisfaction" can be derived from
For more information, consult [AMI95]. What is a metric?
We distinguish 2 kinds of metrics:
Each metric is made up of one or more collected metrics. Consequentially each primitive metric has to be clearly identified and its collection procedure defined. Metrics to support change or achievement goals are often "first-derivative" over time (or iterations or project). We are interested in a trend, not in the absolute value. To "improve quality" we need to check that the residual level of known defects diminishes over time. Templates
Template for a metric
Template for a Primitive Metric
Metrics activities
There are 2 activities:
Define measurement plan is done once per development cycle - in the inception phase, as part of the general planning activity, or sometimes as part of the configuration of the process in the development case. The measurement plan may be revisited like any other section of the software development plan during the course of the project. Collect measures is done repetitively, at least once per iteration, and sometimes more often (e.g., weekly on an iteration spanning many months). The metrics collected are part of the Status Assessment document, to be exploited in assessing the progress and health of the project. They may also be accumulated for later use in project estimations and trends over the organization. For the role of metrics in project management, read [ROY98]. |
|
|