Knapsack agile
Hi
Can someone explain to me what knapsack prioritization is all about?
Does someone use this in their daily work?
It's a technique that allows a Sprint to be faked. Rather than forecasting a backlog of work to meet a valuable and committed Sprint Goal, an algorithm is applied which optimizes the sum total value of individual items. The metaphor is one of trying to squeeze the most valuable items into a knapsack of limited capacity.
In effect the Sprint Backlog is treated as a batch that can be algorithmically optimized, rather than a means to solve a complex problem through emergence.
Knapsack prioritization is a stochastic (a randomly defined) method of prioritization. As Ian has already pointed out, it uses an algorithm to determine either the risk to be mitigated or to determine the priority of work-items (I am intentionally leaving out PBI) based on the principles of risk management. IMHO, it goes against the empiricism and should not be used for prioritization of PBIs when using Scrum.
Following are the reasons it goes against the Scrum Values:
1. Algorithms for Knapsack Simulation models are built by capturing samples from each distribution for each iteration of the simulation and then correlating these to the final cost and schedule. The regression analysis is built in the model and the final outcome of the model is based on correlation.
2. Correlation is an unreliable method/method for prioritization of discrete and unique events. In other words, correlation dependent risk models usually have in-built risk of failing. Correlation metric is also unitless, as in, you cannot get absolute values for correct estimation such as hours, days, cost, etc.
3. Any attempt to convert correlation into real, tangible useful metric requires using an assumption of normality. This is where the algorithm can FAKE sprint as Ian suggested.
I highly doubt if anyone uses them in their daily work. I have seen a single pass and iterative prioritization models but even these are used with caution as they have their inherent strengths and weaknesses.
I'm not going to try and explain it better than @Aditya Vaze did. But I will leave with this statement.
Algorithms make things repeatable but life makes things unpredictable. How many times have you gotten somewhere to discover that you need something you decided could be left behind in favor of something you wanted to have with you because you felt the second was more valuable?