Measuring Business Value in Agile Software Development
One of the elusive things in software development is how to measure business value.
For some projects it's fairly obvious. Maybe there's a clear revenue benefit. Or a tangible cost saving. Or a very specific risk avoidance.
But what about on BAU (Business As Usual)? How do you get some indication of the business value a team is delivering on bug fixes, enhancements and new features delivered as BAU?
One way - which is fairly rudimentary but an interesting indicator - is to use Fibonacci points in a similar way to Velocity.
The idea here is to put Fibonacci points for business value on every item (or User Story) on the Product Backlog, as well as the points for each feature's size.
The development team provides the points for size, because only they are qualified to judge how big a feature is, relative to another. Whereas the business value points should come from the Product Owner/Business Owner.
In the same way as the development team estimates in points, the Product Owner decides on a business value for each item, relative to each other. The key thing here is that the estimated business value is relative, i.e. a feature with a business value of 2 is twice as valuable as a feature worth 1; a 5 is worth 5 times a 1, etc.
When you have Fibonacci points for size and for business value, you can also do some interesting things to help prioritise your backlog. Firstly, if you have a long Product Backlog that is difficult to get your head around, you can simply enter business values individually and then sort the list by business value as a starter for ten.
Secondly, you could do a calculation of business value divided by size to give the feature a priority score. It's a bit rudimentary, but it's a simple way to sort the backlog so the high value/low effort features come out at the top.
You can also plot this on a scatter graph, which you can set up to put the high value/low effort features on the top right, and the high effort/low value features on the bottom left. This is a useful concept and can help to facilitate a good discussion about priorities.
But aside of prioritisation, putting a business value in points against every item on the backlog allows you to calculate 'Business Velocity', i.e. how much business value (in points) was delivered in each Sprint. You could plot this on a 'burn-up chart', showing the cumulative business value delivered over time - hopefully with an accelerating trend line.
And you could use this graph to see whether the business value for each sprint is increasing or decreasing. Naturally a team's business value might slow down as a product matures in its commercial lifecycle. Maybe in this case it's time to think about switching resources onto other priorities? Maybe it coincides with a lower velocity? Or maybe it's time to think of some more valuable ideas?
Either way, I guess it could be interesting to see...
Kelly.
P.S. Click one of the icons below to join the growing community of people keeping up with this blog by RSS or by email...
Photo by eyeore2710
For some projects it's fairly obvious. Maybe there's a clear revenue benefit. Or a tangible cost saving. Or a very specific risk avoidance.
But what about on BAU (Business As Usual)? How do you get some indication of the business value a team is delivering on bug fixes, enhancements and new features delivered as BAU?
One way - which is fairly rudimentary but an interesting indicator - is to use Fibonacci points in a similar way to Velocity.
The idea here is to put Fibonacci points for business value on every item (or User Story) on the Product Backlog, as well as the points for each feature's size.
The development team provides the points for size, because only they are qualified to judge how big a feature is, relative to another. Whereas the business value points should come from the Product Owner/Business Owner.
In the same way as the development team estimates in points, the Product Owner decides on a business value for each item, relative to each other. The key thing here is that the estimated business value is relative, i.e. a feature with a business value of 2 is twice as valuable as a feature worth 1; a 5 is worth 5 times a 1, etc.
When you have Fibonacci points for size and for business value, you can also do some interesting things to help prioritise your backlog. Firstly, if you have a long Product Backlog that is difficult to get your head around, you can simply enter business values individually and then sort the list by business value as a starter for ten.
Secondly, you could do a calculation of business value divided by size to give the feature a priority score. It's a bit rudimentary, but it's a simple way to sort the backlog so the high value/low effort features come out at the top.
You can also plot this on a scatter graph, which you can set up to put the high value/low effort features on the top right, and the high effort/low value features on the bottom left. This is a useful concept and can help to facilitate a good discussion about priorities.
But aside of prioritisation, putting a business value in points against every item on the backlog allows you to calculate 'Business Velocity', i.e. how much business value (in points) was delivered in each Sprint. You could plot this on a 'burn-up chart', showing the cumulative business value delivered over time - hopefully with an accelerating trend line.
And you could use this graph to see whether the business value for each sprint is increasing or decreasing. Naturally a team's business value might slow down as a product matures in its commercial lifecycle. Maybe in this case it's time to think about switching resources onto other priorities? Maybe it coincides with a lower velocity? Or maybe it's time to think of some more valuable ideas?
Either way, I guess it could be interesting to see...
Kelly.
P.S. Click one of the icons below to join the growing community of people keeping up with this blog by RSS or by email...
Photo by eyeore2710
23 February 2009 22:53
Sounds like a conversation we had last week. We're trying this out for the next release of our software so fingers crossed it will help prioritise the backlog. I'll let you know how it went for us.
24 February 2009 02:11
Sounds interesting, as long as the criteria for prioritization are clear.
24 February 2009 12:27
A step in the right direction but I can't help feeling these approaches are too development centric (the tail wagging the dog as one of my former CEOs would have put it).
For me the starting point should be the business model and analytics around it.
If the development team fully understand the business model and its associated analytics then they are in a good position to advise on how technical improvements should be made to maximise cost/benefit.
In reality I think many businesses lack the analytics so there is only the cost half of the equation.
25 February 2009 18:58
Yes, I agree that everything starts in the Business Model and finding the right criteria for the prioritization is a challenging task.
8 March 2009 00:33
Agree with Jeremy. We've attempted such a BV scheme in the past, but found it difficult for the business to identify the criteria for value determination. We've since moved to another system identified here: http://blog.projectconnections.com/project_practitioners/2008/09/story-prioritiz.html
What have been your experiences with using the Fibonacci sequence?