Many organizations are becoming agile to improve quality, throughput, or many other good things that agile brings along. It thus seems trivial that if we want to measure our improvement we will measure these. However, this raises a difficulty and we need to look at it.
Let’s say we want to improve quality. We decide to use the Scrum framework. The scrum framework talks about sprints, sprint goals, daily scrum, and many other things, yet it doesn’t directly discuss quality. There is a leap of faith here: we believe that if we will use the scrum framework, quality will improve.
Quality, throughput, agility, and others are what we call Lagging indicators. They will change as a result of the things we do. We do not affect them directly. If my boss wants me to have a higher quality I cannot just do that, I need to do things like testing, refactoring, reviewing, etc., and then the quality will improve.
So what should we measure?
We should look for leading indicators. Indicators that we can directly impact by the things we do. For example, do we do code reviews? What is our test coverage? how long does it take for our tests to run? how many items of the sprint’s backlog were done by more than one person? How many people from the organization show confidence in the bi-monthly goals (if too low, let’s adapt it)?
Once we identify our leading indicators (according to the practices we want to focus on) we can have direct and tangible measurements. Our belief is that once we near our leading indicators goals, the lagging indicators will follow.
If this is interesting I strongly recommend reading Jesper Boeg’s Level Up Book which talks exactly about this (and how to do it).