February 26, 2009, 8:39 AM — Agile methods need only the most important metrics: the ones that tell the whole story about the project.
Metrics measure the health of a project and are by far the most objective ways by which a project manager enables all project sponsors and delivery teams to see where resources are needed or spent, or which areas of a project need more focus.
Among agile project teams, consolidation of metrics differs significantly, in a way that only the most meaningful metrics should be maintained. In another word, there are certain metrics that agile project teams keep to summarize their progress most effectively, supported by prose-style summaries from managers about the impact of iteration to the overall project health.
But how do agile teams determine the most important metrics? What makes the most sense to project sponsors, clients, and management?
According to Jochen Krebs, author of Agile Portfolio Management, there are primarily three metrics that provide the best measure of the state of an agile project, namely, progress, quality, and team morale.
Progress is a function of converting requirements into a working version of software. It starts with a plan, which is the estimated effort for working on a requirement and the actual value, which is the actual development work. Comparing plans and efforts allow project teams to adjust their metrics for the next round of requirements and iterations.
Tracking the progress of a project is especially useful when the estimation method used is based on story points, which are assigned values to all documented requirements. These points do not come from estimated working hours and assigned dollar values which do not reflect real-world productivity scenarios. Instead, these are all estimates done by delivery teams according to the level difficulty of the work involved, as well as their own measure of personal productivity or expertise. After each iteration, project teams can go over their story points and make necessary adjustments as they work towards the next iteration of the software.
Progress is also measured by use-case points, which gauge the functionality of the system, and technical and environmental complexity of the project. It allows sponsors to have a good idea of the amount of resources to assign to the project team, as well as agree on project milestones.
Quality metrics indicate compliance to requirements and address issues more frequently, thanks to multiple iterations. Exposing defects at the earlier stages of the project is one of the key strengths of agile methods, therefore quality checks prevent further rework throughout the progress of the project.
It is important, however, that new test cases should be included in every iteration or when changes are introduced to the system. Counting the total number of test cases vs. open defects reflects the progress that the team has made in terms of development work should existing test cases fail to capture defects. Moreover, impediments to development, testing, and rework should also be considered when measuring quality metrics.
Agile project management is on a large part about managing people. Studies show that overall team morale is directly related to the level of individual morale. The amount of personal investment that people put into the project is related to how they manage stress levels as the next iteration approaches, and how issues are communicated during development or rework. Stressful team environments cause attrition, which is a major staffing issue in outsourcing. The higher the morale, the more effective team members work; the more attrition is prevented, overall performance is reflected in the product’s quality.