WSJF — Product Prioritization Framework
Rationale — Why?
According to CB Insights, the number 1 reason for startups to fail is building something that doesn’t have a market need. Thus, prioritizing the delivery of “right” features is a #1 problem that we’ve to tackle.
Approach
We aim to find a framework that would suit our needs and will balance our short term vs mid-term goals.
In a nutshell framework shall:
- Balance short term (button x) vs long term(enablement for new business opportunities, or risk reductions like GDPR, security, tech debt)
- Respect requests with strict deadlines (e.g client go live)
- Respect business value (revenue, profitability)
- Respect costs (with proxy metric = duration, effort, complexity)
Framework
After careful consideration we decided to use a variation of “Cost of Delay and Weighted Shortest Job First [WSJF]” as a baseline for Everphone Prioritization.
WSJF questions the Cost of Delay: how much will it cost the company to delay building the feature?
WSJF Score = Cost Of Delay / Job Size
Cost of Delay = Business Value + Time Criticality + (Risk Reduction OR Opportunity Enablement)
WSJF Definitions:
- Business-Value
What is the value of the feature to the business? Revenue impact? Financial penalties for non-compliance? $$ Earned? Man-hours saved? - Time-Criticality
When does this feature need to be done? Next week? Next month? Next year? - (RR&OE) Risk Reduction and/or Opportunity Enablement
Does this feature reduce the risk of security, compliance, user error, financial overspending? Or, does it enable new business opportunities? - Cost of Delay
The money or man-hours that will be lost if you don’t build this feature in the given time period. - Job Size
How long will it take the team to build the feature in developer sprints? Remember that scoring is relative among features and not absolute. For example, instead of answering how long it will take to develop Feature A, we shall answer will Feature A take 1,5x more time to develop than Feature B.
How to Calculate WSJF?
WSJF uses Fibonacci Numbers (1, 2, 3, 5, 8, 13, 21, 34) for scoring.
Please see the template for prioritisation here
Process for calculation.
- List all features / requests
- Set values by going from column to column starting with Business value
- Ensure that there “1” in each column
- Feature with the highest WSJF value will be #1 priority
Examples
For instance in this case even though Cost of Delay for feature 3 is higher, the job size is quite big, so it would make sense to work on Feature 4 first or reduce the scope for Feature 3.
Another example can be found here
FAQ
Q: How often shall we use this prioritization framework?
A: As often as you need to do prioritization. It can be weekly, bi-weekly or monthly.
Q: How to understand which fibonacci number to use?
A: The good thing about the Fibonacci number is that every next number is almost 2 times bigger than a previous. You shall think for example is Business Value for Feature 1 comparable to Feature 4 (a bit higher or lower). If yes, then they’ll have the same value (2) or is it twice as big, then bigger value can be used (e.g. 3). All values are relative to each other.
Q: I think that we’re missing some important criteria, can we add it?
A: Sure, but you must add the criteria as a separate column before you start calculating scores.
Q: What does Business Value mean?
A: It’s a combination of the most important KPIs for the team/value stream. For instance, for sale it might be a conversion rate or # shipping potential. For Customer Success it can smth similar or be mixed with Customer Satisfaction score.
Relative values — business value of each feature is strongly dependent on other items in the list and should be considered together with them. Higher score indicates that importance of the feature is higher than importance of all features with lower scores.
TBD what is the most acceptable definition of Business Value.
Q: What does Time Criticality mean?
A: It’s an expected time of delivery based on business demands. However, it is not a strict deadline as time criticality is one out of four equally important parameters which are affecting final WSJF score (TBD if we need to add coefficients for each of 4 parameters)
Q: It is possible than job size>time criticality. What is happening in case of unrealistic expectations?
Potentially we should pay extra attention to such features and make sure their score is realistically high to make this feature is staying at the top of the list.
Q: How is the scoring happening in practice?
A: There are 2 ways of scoring
Lowest score first. Pick the item with the lowest value and mark it as 1. Pick a random next one and check if it’s 2 times higher or more.
Start with the middle. Pick a first one and assign it =5. Pick the next one and check if it’s bigger or smaller than a previous one. Any next assignment shall consider the overall picture. For instn scoring an item with let’s say 8, at least look at an existing 8 to determine whether it’s more a 5, more a 13 or really an 8.
Ideally we need to allow people to read through everything and make an informed opinion- send them an invitation to read through the tasks a day before the main meeting happens.
During the meeting — silent re-reading for 15–20 minutes. 10 minutes for scoring. Rest for discussion or decision making, scope change and etc
Q: Who provides the score?
A: For business Value and Time Criticality — mainly Stakeholders. Risk Reduction/ Opportunity Enablement — PMs, for Job Size — Engineers. We need 1 person from each group to make a decision.