2. Backlog Prioritization (BP)
Problem
Backlog prioritization is one of the most
important duties of the PO because it
determines in what order features will be
released.
Despite this, the methods to prioritize stories
or features are mostly intuitive.
Mike Cohn recommends a “Bubble Sort”
where items are compared to each other and
swapped until the highest value items are on
top.
However, this approach does not necessarily
yield an optimal packing for each sprint. It
also may underestimate certain types of risk.
3. Enter The Knapsack Problem
(KP) C = 25 kg 9 kg
4 kg
RM1400
RM1200
20 kg
10 kg
3 kg
RM800
RM1500
RM2000
4. Reformulate BP as KP
Now the shopping cart becomes the
team with certain sprint capacity C =
<number of story points>
Each available backlog item can be
inserted into the sprint based on its
size and value. We can try to
maximize the value.
5. Two Approaches to BP
Minimize Risk Maximize Value
This is the Markowitz Model: This is the Triage Model:
We want to obtain a decent level of
We want to obtain a decent level of
return (value) for a low level of
risk for a high level of return (value)
risk
6. This problem is solvable for a single
team
Dynamic Genetic Algorithm
Programming
Stochastic selection and
reproduction
Divide-and-conquer
Sacrifice time for space – O(n)
Sacrifice space for time – O(nC)
7. For multiple teams? GOOD LUCK!
The problem is NP-hard for multiple
teams, and if the risks vary across
team-item assignments, which they
probably will, then it becomes even
harder! (GAP)
There are pseudo-polynomial time
approximation schemes for solving
them nonetheless. However, that’s
beyond the scope of this discussion.