Agile Metrics
One of the hardest things that we struggle with in Agile is with is how to report how we are doing with respect to our projects. Agile or otherwise we still primarily think of our software development in a project orientation. All of our historical metrics from our waterfall days talk about headcount, resourcing, man hours (days), project milestones, etc…..
In Agile we don’t produce the type of metrics that management has historically used as progress tools.
You hear quite often that in Agile velocity is king (kind of like cash) and in a real sense that is true for me.
Velocity represents the amount of value that a single Scrum team can deliver. We know that each Scrum team has a specific set fixed cost and the value that they ‘consistently’ deliver reflects a key metric for management to key on.
- Velocity – What can you glean from a single number?
- Effective Estimation – A Scrum team that doesn’t deliver accurate or confident estimates they will see their velocity roller coaster from sprint to sprint.
- What to look for? –
- If a team consistently has to move a story to the next sprint because it couldn’t be completed that is an indicator for estimation improvement. This has the effect of reducing the points for that sprint as they can’t accept an incomplete story.
- If a team consistently has large stories entering their sprint, ie larger than 8 points, this is an indication that they haven’t decomposed their stories enough. Lack of story breakdown results in more unknowns leading to inaccurate sprint commitments.
- What to look for? –
- Effective Estimation – A Scrum team that doesn’t deliver accurate or confident estimates they will see their velocity roller coaster from sprint to sprint.
- Planned vs Actual – Another flavor of identifying estimation issues.
- What to track? – Once a team develops a consistent velocity (usually takes 3-5 sprints) then that is what we should expect each iteration, providing people aren’t on vacation, etc…A team that commits to varying levels of story points each sprint typically hasn’t performed enough story development or they lack a well-groomed backlog.
- Burndown – I specifically like this as it reflects the above issues very nicely.
- What to look for? – Pretty simple really. A team that has performed effective story decomposition, planning and estimation should expect to see their work being delivered and completed throughout the entire sprint.
- What to look for? – Teams who have a cliff dive burndown where all of the story points in development hit QA at the end of the sprint. (Solution? – QA needs to set up a working agreement so that they will only test ‘x’ number of points in any given day. If the team delivers 12 points on Friday and the agreement is 8 points for testing, then 4 story points will not get accepted, regardless if ‘development is done’ (cold uh?).
- Sprint changes – Though harder to track with most of the tools out there (Rally has an app but I’m not sure it provides information that is easily derived regarding which stories actually left the sprint and which ones came in). Regardless of how you track it, this one metric will tell you a lot about an organization and it’s overall planning effectiveness. Remember – Agile accepts that change is inevitable, but in the real world you can’t have unmanaged change, teams can’t work effectively or productively in that manner.
- Sprint Plan vs Actual – As teams improve in their planning and estimation skills, they should also get better at providing accurate estimates as to the number of Sprints it will take to complete a feature (aka project). One of the things I had a VP say to me recently is that he wasn’t sure Agile was the way because at the end of the day he still had to make commitments to Sr. Mgt. The notion that Agile can’t provide plans that have accuracy is wrong, however you but need to focus on Discovery, Planning and Estimation efforts. And we need to understand that there are places and times where we need to take time to do this work. Thinking that we should always just be coding is a sure way to build something, but probably not the right something.