Metrics

Agile Metrics in Action

Time flies! It’s been a while since I did some blogging, but now I’m back with a book review ”Agile Metrics in Action” from Manning Publications. The subtitle is ”How to measure and improve team performance”. This is an interesting topic I must say! If you do a change in your team, how do you know if it was for the better, or for the worse? You need to have some information, to be able to compare before, and after, the change. Voila, metrics comes in! The book is written by Christopher W. H. Davis and has 270 pages, it was released in July 2015.

”Agile

Content

The book consist of 10 chapters divided into three parts. The chapters are:

  1. Measuring agile performance
  2. Observing a live project
  3. Trends and data from project-tracking systems
  4. Trends and data from source control
  5. Trends and data from CI and deployment servers
  6. Data from your production systems
  7. Working with the data you’re collecting: the sum of the parts
  8. Measuring the technical quality of your software
  9. Publishing metrics
  10. Measuring your team against the agile principles

In software development we need measurement of what we produce, of course, but also measurement of the impact of the changes we make to improve delivery. Collect, measure, react & repeat – these are the steps in the feedback loop that we want to use.

”A method of measuring something, or the result obtained from this” – metrics defined by Google

In the software development lifecycle (SDLC) data to use as metrics can be obtained from the following sources:

  • Project tracking
  • Source control
  • Continuous integration
  • Deployment tools
  • Application monitoring

Development teams should be responsible for tracking themselves through metrics that are easy to obtain and communicate!

From your project tracking system (PTS), like JIRA or Rally, you can get the following:

  • Burn down chart
  • Velocity
  • Cumulative flow
  • Lead time
  • Bug counts

But why stop with only this? The book has a tip about tagging your tasks with as much data as possible. Tag for example all tasks that get automated tests written for them with:
#automated

With a clever query in your PTS, you can use this tag to create a new metric, representing the percentage of the tasks that are covered with automated tests. Store this metric over time, and you can see trends, to answer the question ”Are my automated test coverage going up or down?”. Another useful thing, is called recidivism, which is the measurement of tasks as they move backward in the predefined workflow. If a task moves from development to QA, fails validation, and moves back to development, this would increase the recidivism rate.

Source control is where your code is being written and reviewed and is a great source to complement the PTS data for better insight into how your team is operating. Continuous development starts with continuous integration (CI), the practise of continuously building and testing your code as multiple team members update it. Also use data from your deployment tools and application monitoring to combine everything into powerful metrics, that can tell the team and other stakeholders a lot about the current situation!

To calculate a custom metric you need two things:

  • Data to generate the metric from (as mentioned above)
  • A function to calculate the metric (can be in a range from very simple to super advanced. But remember you should be able to communicate your metric to other people!)

Recommendation

The book ”Agile Metrics in Action” does a good job in thoroughly explaining the topic about metrics. This is done with informative texts, together with a lot of pictures! If your are interested in metrics to help you improve your team, you should definitely check this book out!

All the best,
 Tomas from TheAgileist

Advertisements