Weighted Shortest Job First (WSJF)

One of the roles of the product owner is to supply the product backlog with the functionalities or features that the technical team will have to develop. The other, undoubtedly more complex, is to define the priority of the tasks to be performed. How do you choose which feature should be developed first? The solution to this problem can quickly become a headache for the product owner and be very time-consuming. The WSJF, or “Weighted Shortest Job First,” is a very effective tool that will simplify the work of the product owner when he or she has to prioritize the content of his or her product backlog.

How to define the WSJF?

Weighted Shortest Job First is an Agile model designed to determine the prioritization of user stories (or features or epics) present in the product backlog. As the name indicates, WSJF consists in giving higher priority to the most important and shortest features.

WSJF is part of the SAFe lean-Agile framework. SAFe is a complete Agile framework designed to be deployed across an entire company. It is not made to work with less than 50 people and is thus not suitable for smaller teams. Nevertheless, WSJF is a tool that can be used alone, by the product owner, regardless of the size of the project or the team.

The basic assumption is that any feature that is not delivered on time has a cost, the “Cost of Delay.” A poor prioritization of the product backlog may, therefore, lead to the multiplication of these costs. Even if they are not important for each feature, an accumulation of them can be disastrous.

The goal of WSJF is to minimize these costs and to bring maximum added value at the end of a sprint. WSJF will be particularly useful to help the product owner to decide when it is difficult to decide between two similar features (in terms of value and development time), which feature should be developed first. If two features have the same value, but one of them will take less time to develop, the solution is simple, it is the latter that will be a priority. On the other hand, if there is a feature whose development time is even shorter, but which has not been considered a priority until then, arbitration is going to be necessary. It is in this case that WSJF will provide the greatest help.

Use of the WSJF

The WSJF will be calculated for each feature present in the product backlog. This calculation will allow the assignment of a value to determine priorities. The higher the WSJF of a feature, the higher its priority it will be in the order of performance.

At the end of the calculation of the WSJF, the features to be realized will be found in a very particular order:

  1. Features that are not complex but that have a high added value.
  2. Complex features that have a high added value.
  3. Features that are not complex with a lesser added value.
  4. Complex features with a lesser added value.

In order to calculate the WSJF of a feature, four criteria are taken into account. Each is evaluated on a nonlinear increasing scale, based on the Fibonacci sequence.

  • Business value: The business value of the feature (very high for all key functions of the application).
  • Criticality: Does the feature need to be delivered quickly or not?
  • Reduction of risks / ease in developing another feature.
  • Size of feature to be developed (job size): effort to be provided by the development team for realization.

This last criterion, the effort to be provided, is generally evaluated by the development team.

It is possible to calculate the “Cost of Delay” of a feature from the values of these criteria.

Cost of Delay = Business value + Criticality + Risk reduction / ease in developing another feature

Finally, the calculation of the WSJF of the feature is as follows:

WSJF = Cost of Delay / Size of the feature

Once each feature has its WSJF, it is possible to determine the development priorities. The higher the WSJF, the higher the functionality will be.

One immediately notes that the criterion having the most weight in the calculation of the WSJF is the size of the functionality, or the effort to be provided. This shows that small features will be easier to estimate and plan. An important functionality in terms of the effort to be provided will not necessarily be a priority, contrary to what one might have thought. It all depends on the added value it brings and the consequences on the progress of the project if it is not developed more or less in the short term. It is also not uncommon to see features requiring significant effort, but bringing little value, finally abandoned by the client.

It is important to keep in mind that the WSJF is not fixed in time. Once the calculation is done, the result is not cast in stone. The product backlog will be regularly updated by the product owner (backlog refinement), and consequently, all criteria may vary. The WSJF is then recalculated, and the prioritization may be modified.

To conclude on the WSJF

The WSJF is an effective tool allowing the product owner to determine the prioritization of the implementation of the features present in the product backlog. It is not always necessary to recur to the WSJF. Sometimes the prioritization of tasks is obvious and not open to discussion. On the other hand, when it is difficult to determine what functionality should be carried out before the others, evaluation of the criteria and calculation of the WSJF will make it easier to obtain a classification. The criteria used to calculate the WSJF are usually evaluated at a meeting attended by the product owner, the scrum master and the development team.

Nutcache, a complete online project management solution, provides all the tools necessary to calculate the WSJF and prioritize the product backlog. A 14-day free trial of the complete Nutcache solution will help you learn about the product. Do not hesitate to contact us.


About the Author: