WSJF - Weighted Shortest Job First
As a principle, I don’t like Agile because that sort of a running race is really not needed in any technology. It’s a different topic altogether. But, why am I here? WSJF. I was seeing this for a long time but never did I bother to look into what it means. Forget what it means, what does it even expand to. What my manager told me is what I know - the larger it is, the higher priority a feature takes. But, what does it even mean?
The expansion doesn’t help either. In it’s simplest terms, WSJF is an indication of the cost of delay for that feature if it is deprioritized.
Now, what is cost of delay? It can be assessed as a cumulative effect of loss due to non-implementation, loss due to lost opportunities and loss due to depreciation of value.
JIRA Align defines these values as thus -
Business value. Relative value in the eyes of the customer/business, including such considerations as what users prefer, revenue impact on the business, and any penalty (cost or market share) for slow or late delivery.
Time value. This parameter reflects how the user value may decline (or CoD will increase) over time. Considerations include deadlines, customers' willingness to wait, and the effect on customer satisfaction while the feature is not available.
Risk reduction/opportunity enablement value. This element is a combination of three items: the need to eliminate risks early, the credit given to the value of the information received, and the potential for new business opportunities that might be unlocked.
Job size. If availability of resources means that a larger job may be delivered more quickly than some other job, then the job size estimate must be converted to job length to have a more accurate result.
And cost of Delay is just the sum of these three.
So, how do you calculate these four values? Let’s not forget that these are perceived values and not the actual ones.
Before trying to understand how one can calculate the values, let’s try to understand what the above set of numbers represent. My assumption is these are normalized and then manually corrected values which the business perceives to be the actual ones.
First look at the third and fourth entries. It is just possible that they are heavily time critical but don’t add much to the revenue. The fourth one, it looks as if it has a business monopoly as well in a niche field. That besides, the change itself is not big!! The third, on the other hand, hints, possibly it’s an opportunity not to miss but if we are in a position to, let’s pick it immediately. Again, it’s not a critical feature to the business but it’s an opportunity, may be, we should grasp.
First and second are intuitive enough - these are something internal and touching some high volume areas in the business. The first one has got a very large job size - meaning it’s a months long programme to deliver the business value - may be, entry into a new market? Or opening a new line of products which don’t fit into the existing business model? Second one, on the other hand, is a high business value but an insignificant change. Just do it - it’s not big enough is what the business would say. Unlike the first feature, even though this has a low cost of delay, the size of the job tells that this can be closed instead of being pushed into the backlog blackhole.
Now, let’s go back to the original question. How do you calculate them?
Assign arbitrary numbers based on perception. Problem then would be, after you compute your WSJF, you will have to reevaluate the priorities once again.
A calculated estimate of how important it is to the user. It can be the financial cost or a normalized value of the financial cost. But, for every silly feature, does it really make sense to go on such big an audit exercise?
A Fibonacci scale of perceived weightage. Again, arbitrary. But, in a sense, this is a sort of balance between the first and second - it’s easy to answer the question, Will you give 5 for this feature or 8 for this feature as against On a scale of 1 to 100, where do you place this feature in terms of criticality or Can you privide an estimate of the cost of delay for this feature.
If you hate Fibonacci and want to use a different sequence like squared numbers or prime numbers or whatever suits your fancy, go ahead!! But one thing. Use the same scale for all of the four entries if they are normalized.