In
Agile software development, we often say that a story is about describing business value. This might seem pedantic, but I've come to think that is wrong.
What a story is doing is describing business
benefit. This is the benefit a business will get if they implement the story, and might include any of the following:
- Reduction in cost.
- Increase in revenue.
- Compliance to regulations.
- Increase in productivity.
- Learning and new knowledge created.
- Removal of risk.
Obviously, obtaining any of the benefit of a story will require work. This is the
cost, and consists of:
- The cost to develop. This can be predicted from the estimate and the velocity of the team.
- The cost to support. This is ongoing cost that will have to be paid to support the feature described by the story (eg. hardware, regular maintenance / manual intervention, etc).
Knowing both
benefit and
cost, we can then determine
value. In simple terms,
value can be described as a relationship between
benefit and
cost:
Value can be increased by either increasing the
benefit or decreasing the
cost. Thinking about
benefit and
value in these terms makes it much easier to understand prioritisation of stories - you simply do the story that has the highest
value first.
6 comments:
I agree with using the term "business benefit" instead of "business value" but I don't think your definition of value holds.
Consider these stories:
As a user, I'd like to be able to post a new topic on the forum so that I can start a discussion.
As a user, I'd like to be able to sort topics by recency so that I can easily find out about the latest activity on the forum.
These stories offer the benefits as mentioned in the so that clause.
Now let's assume that the sorting story will cost much less and hence will provide more in terms of (benefit - cost).
Any business, however, is much more likely to prioritize "posting new content" over "sorting by recency". And this is how it should be.
(benefit - cost) really just gives you "profit"; a fun thing to boast about.
"You know, we had the whole blog engine done in 2 days"
Interesting example, thanks!
I would like to question where you say the business is more likely to choose the low value example over the high value one. Why would they do this?
I would suggest it is because they see very little "benefit" in sorting before "posting" - such that the benefit approaches 0 and thus the value (benefit/cost) will also approach 0 despite the cost being low.
Remember that benefit is not fixed over time for a story (and neither is cost). It can change as new development occurs, new learning occurs, or the organisations objectives change. So the benefit of the "sorting" story will increase after the "posting" story has been developed.
I also think that if the benefit of the "sorting" really is not low enough to cause the value to be less than the "posting" story, then you need to question if the intuitive feeling of doing "posting" first is correct.
I really don't understand why you would divide by cost, rather than subtracting cost. Put purely in terms of dollars, this doesn't make sense:
Feature 1 will bring in $200 of revenues, with a cost of $100. By division, the value is 2 (2 what?). By subtraction it is $100.
Feature 2 will bring in $20 of revenues at a cost of $5. By division, the value is 4. By subtraction the value is $15.
Now, if you have 10 features just like feature 2, sure, implement those--the total value by subtraction will be $150. However, if you have to choose just one to have in the next release, and your remaining budget is $100, you're far better off implementing feature 1 now.
Division also produces certain anomalies. Value is always positive, even when cost exceeds benefit. You have to have a convention that says "fractional values actually provide negative value", instead of just seeing that $100 worth of benefit that costs $200 yields -$100 of value.
You should really be implementing the basket of stories that provides the highest net benefit. Net benefit is best determined by subtraction.
Hi Nathan,
Thanks for your comment!
I think subtraction is how you measure profit:
Benefit - Cost = Profit
Value is typically a subtly different concept which is meant to describe the trade-off between benefit and cost and give an indication of how 'valued' something is. The division is meant to represent this, although it is not intended to be calculated explicitly as your trying to do.
Also - I think the anomaly you consider is correct. Value can never be negative (unless the benefit is negative). If I get some benefit, then I do value it in some way regardless of the cost. And I can intuitively see that in this case decreasing the cost will improve the ratio and hence make it more attractive. Likewise, I can see that as the benefit decreases the value rapidly approaches 0.
In accounting terms, however, you're probably right - profit is a more useful figure however I'm not sure it captures the thought process that occurs in planning as well.
i disagree with your last point regarding doing stories with highest 'Net Benefit'. I think 'Net Profit' is what your trying to say, as we have already defined benefit as being separate from cost.
Overall it's an interesting point and I'll have to think on it some more.
I think you should call your definition as "Incremental benefit per effort delivered". It is overly simplistic, but I have used such a technique myself to come up with an initial proposal for prioritization. Mind you, the benefits are not always straightforward i.e. deriving a number and hence, you will always be hard pressed to justify. But then your means are only for an end i.e. sensible prioritization.
The Cost itself is not a static function either. Assume that I was initially told about a story as costing 20 points. However, the benefit itself is immense to me and there is an alternative way to getting the story done which would only cost me 5 points. Suddenly, the story is 4 times more valuable then it was before as per your definition. If you ignore the benefit and only focus on the ratio, you would have made a mistake in ignoring this story.
So I would still, as a general rule, look at the benefits delivered for the story and determine the "cheapest to deliver" solution for that benefit.
Hi Prashant,
First, apologies for replying so long after the initial comment. I was only just looking back over this post and saw it. I hope you don't consider it poor form if I write a brief response.
I'm still more in favour of the term value than "incremental benefit per effort". Value is a concept that we use in many areas of life, and is usually derived in much the same way. What benefit do I get at what cost? We use this mental arithmetic whenever we make a buying decision.
I totally agree that cost is not static. It can (and will) vary over time. I do, however, think that it's entirely reasonable to ignore a high benefit story that has an unacceptably high cost (and hence low value) - until the point where an cheaper alternative is found. Perhaps, however, it's worth going a little meta on this one. If there is something of high benefit but the cost is too expensive, it may be worth an investment in effort to find cheaper alternatives.
This would be a new task with a new benefit (eg. we may find a cheaper way to produce X) and have a cost of it's own. This may represent high value and thus would be worth of considering.
Post a Comment