Monday, November 2, 2009

Agile Project Metrics

Dave Nicolette presented Agile Project Metrics at Agile Conference 2009. He explained that there are 3 levels of maturity in agile teams:

1. Six week iterations. Stories are divided into tasks. Estimating is done in ideal time. Burn down chart is updated daily.

2. Two week iteration. Stories are divided but estimates are made in story points.

3. One week iteration. Stories are kept small. No daily burn down chart.

Also, teams are composed of generalized specialists where everyone can contribute in different areas, Tech lead/Chief where junior members are combined with a tech lead to help out in different situations, specialists with internal handoffs from one member to the other.

Collect metrics for self improvements and discontinue once goal is achieved. To the customer, working software is the most important measure of progress. Things to measure are:

1. Running test features

2. Hard financial values (benefit of using software after every release)

3. Earned Business Value (have customer value features)

4. Velocity

5. Static Code Analysis (statements per method, LOC covered by tests, cyclomatic complexity

6. Earned Value Management

The talk concludes by giving an example of a sample scorecard divided into 4 quadrants:

1. Value delivered: Earned Business Value, Running tested features, Burn down charts.

2. Delivery effectiveness: Burn down with team focus, story cycle time.

3. Software Quality: Customer satisfaction, non functional requirements, testing metrics, static code analysis, observations.

4. Continuous Improvement: Build frequency, escaped defects, use of TDD, refactoring, overtime, issues from retrospective

This presentation is available on InfoQ at http://www.infoq.com/presentations/agile-project-metrics