Saturday, September 13, 2008

Prioritizing Product Backlog

Succeeding with Agile: Software Development Using ScrumAt Agile 2008, Mike Cohn gave a talk about product backlog prioritization. Mike starts out by discussing the right level of prioritizing. A well formed product backlog should take the form of an iceberg. Small on the top (sprints), a little bigger down the middle (releases), and much bigger down the bottom (future releases). Mike believes that about 10% of current iteration should involve planning and prioritizing for the next iteration.

He then describes 3 levels of user stories. A user story which is a description of desired functionality told from the perspective of user or client, epics which are very large user stories and themes which are a collection of related user stories. An example of an epic might be as VP of marketing, I want to select type of campaign (direct mail, tv, radio, etc) so that I can identify and repeat profitable ones. This can then move up the iceberg and become as VP of marketing, I want to see direct mailings when reviewing historical campaigns. Mike recommends prioritizing at the theme or epic level. It is a lot of work to prioritize at the user story level and not very meaningful.

Mike then covers 4 techniques for prioritization:

1. Kano analysis:

Kano identifies 3 types of features to measure customer satisfaction:

  • 1. Exciter or delighter: Exciter - feature you did not know you wanted until you saw it.
  • 2. Mandatory or baseline: must be present for users to be satisfied
  • 3. Linear: the more of it the better

Agile Estimating and PlanningAgile Estimating and PlanningAgile Estimating and PlanningThis can be done by expert opinion or surveying a small group of users (20 to 30) and asking both functional and dysfunctional questions like how do you feel if a feature is included and how do you feel if a feature is absent. The available answers are standard: I like it, I expect it, I’m neutral, I can live with it, and I dislike it. The results can then be matched to the Kano matrix to find out if a feature is an exciter, mandatory or linear. Others might fall in a questionable, reverse, or indifferent category. Mike recommends prioritizing by including all mandatory, some linear and leaving room for a few exciters.



2. Theme screening:

Identify 5 to 9 selection criteria for what is important in the next release (Importance to existing customers, competiveness, generating revenue, etc…). Identify a baseline theme that is likely to be in the next release and one that everybody understands (not the best one). For each theme, score the theme based on each selection criteria and compare it to the baseline theme using +1, 0, or -1. Add up the results for each theme and then rank them. Open the highest ranking themes and look at individual stories and use expert judgment on them.



3. Theme scoring: Like screening, but selection criteria is weighted and a baseline theme is selected for each selection criteria(1-5). For each criteria make sure there is at least one 3. And then asses the others compared to the reference theme. Repeat for each criteria and then calculate weighted average, add up the averages and rank them based on results. Open theme up and look at individual stories and use expert judgment on them.

4. Relative Weight: Kano, theme screening and scoring are about prioritizing desirability but do not take into account cost. Relative weight addresses relative benefit of doing a feature and how painful is it if we do not do this feature.

Procedure:

Asses impact of having feature (1-9), asses impact of not having feature (1-9), calculate value of each story or theme relative to the entire product backlog, estimate cost of each story or theme, calculate cost of each story or theme relative to the entire product backlog

Calculate priority as relative value / relative cost.

Use these equations:

Total value= relative benefit+ relative penalty

Value percent = total value/sum(total value)

Cost percent = estimate/sum(estimate)

Priority = value percent/cost percent.



Weighting can also be included on the benefit vs. penalty where a benefit might weight more than a penalty.

5. Financial approach: Need a product owner and someone on the business side to figure out things like how much does a new customer bring in, how long do they stay, what are our costs of acquisition. Have a bunch of themes, story points, cost per story point, 3 year return, net present value (NPV), internal rate of return (IRR), discounted payback period in quarters.

User Stories Applied: For Agile Software DevelopmentMike prefers doing Kano analysis 1st to come up with all the mandatory items and then doing relative weight for the remaining exciters and linears. He also recommends doing this analysis at the start of the next 3 month release cycle and not for every iteration or sprint.

This presentation is available on InfoQ at http://www.infoq.com/presentations/prioritizing-your-product-backlog-mike-cohn