Backlog prioritization is one of the most difficult parts of Agile adoption for many companies. So, what is the right way to do it? Are there any recommendations or methods, or is it just enough to let Product Owners decide? These and similar questions are often raised.
When it comes to backlog prioritization, the most common scenario is that the company starts by objecting that: “We’ve always done requirement prioritization and it has worked somehow in the past, so why should we change anything?” Once you dig in and try to understand their practices, you find out that the reality is usually not at all harmonious. The team has a very low understanding of the business value of individual functionalities and usually has freedom to choose the order, since it all has to be done anyway. All the business is interested in is whether they are delivering the release on time. So, starting Agile, the user stories usually have three types of priorities: 60% of them have priority “1”, standing for functionality that must be included; about 30% have priority “2”, standing for functionality which also has to be there; and the remaining 10% have priority “3”, standing for functionality which should most likely be included as well. Maybe ‘prioritization’ is the wrong term, and it would be better to use the word ‘order’. However, all expressions can be misunderstood, so we cannot blame the name for our troubles. Teams affected by such dysfunctional Product Owners have a few options for making it work. One of them is to create the role of Product Owner Proxy who tries to overcome the gap and grasp the missing business context as quickly as possible. Another is to push back to the Product Owner and simply tell him it is his responsibility to choose the priorities for the next Sprint and if he does not we might simply just deal with them in alphabetical order.
Having backlog ordered in this way, and presenting it back to Product Owner with thick red line at the position counted based on real team velocity to visualize which functionality is going to be delivered with the release (above the line) and which most likely not (below the line) usually brings Product Owner back to prioritization process. Such a picture usually creates strong enough pressure to make the Product Owner take action and start to consider changing the actual priorities and functionality. That is the time to play the “Relative Weight Game”.
Let us say you are a product company
In such a case, the key to prioritization is as simple as that. Focus on business value and its cost. If the ratio is high, invest in that functionality. If not, take some actions to improve it or remove the functionality from your backlog.
The following method will support you in this approach. It is not new, but not many teams know about it. The method is based on relative weights, following the same principle as the relative point estimation often used by Agile teams to size the user stories. The idea is simple. Because most of the power of Agile methods comes from teamwork, we start by building a product team. The Product Owner can actually play this game alone, but then he is missing other people’s points of view and the lack of discussion means he might run into unexpected problems while dismissing important aspects of the business value. The team structure many differ depending on your product, company structure, and roles. In a company producing a box product with some level of customization, the Product Owner would usually involve business analysts, the user experience person, SW architect, or manager. At some point he may also involve the consultants or customer representatives in the discussion. The decision as to which priority the particular user story is given still remains with the Product Owner. However, the discussion among the parties involved is often very valuable and allows the Product Owner to make a much better quality decision than if he were to decide on the priorities by himself.
The Product Owner is still the key person in this process. He organizes the meeting; facilitates the discussion; and takes responsibility for the decision making, overall functionality, and, thus, the success of the whole product. The role of the user experience expert is often underestimated in companies. However, such experts are crucial to successful products and their point of view on business value might be the one which is missing in most of the final products. Experts like these help the Product Owner to simplify functionality while retaining business value. The next proposed role for such a team is that of Business Analyst. The role itself is quite controversial, because it is usually missing the connection to ROI, trying to make functionality as extensive as possible to satisfy all potential customer requirements. This is particularly noticeable in formal environments where everybody sticks to their own role and where the competencies are formally divided among parties. In this case, the Product Owner has the high level vision and strategy and does not care about the detailed level of the particular user stories. Conversely, business analysts lack the context of the customer relationship and environmental specifics. So, creating a single team out of them with a common goal is actually a good idea and can be quite helpful even on its own. Another suggested role could be that of Software Architect who can prevent the Product Owner from taking technical risks, e.g. if the team has no experience of using the expected technology, it might be wise to spike around the problem and build some prototypes, or deliver one user story to burn that risk. After all, it is the architect’s role to be in touch with the customer as much as possible and propose solutions that not only make sense from the technology perspective but are worth investing in for business reasons. The group is not limited to above mentioned roles, so feel free to invite anyone who might give you a valuable opinion.
Business value estimation: Relative Weight Game
Once you form a product team, the game can start, with the point being to estimate business value. Because the discussion is the most significant part of the point estimation process, the same applies to the business value estimation game. You, as a team, are going to estimate two independent values for every user story in your backlog (which, by the way, directs the discussion). Because the team is formed of various kinds of people, all the different aspects are considered. The first value you are going to estimate is “Benefit” – meaning how much you weight the value of this functionality. The second value is “Penalty”, which stands for the weight of the loss if you do not implement that user story. Each estimation value is relative to each other of the same kind. Usually we estimate in a range from 0 to 100 for both of these values. For example, the user story which represents the functionality everybody else on the market has, and is therefore expected, might be given a very low Benefit value, close to 0, and a Penalty of around 100. Conversely, a user story that is a differentiator from the competitors and really makes a difference to users might get a Benefit value close to 100 and a Penalty value of 0, as no one expects anything like that anyway. The key stories might be given 100 and 100, but most of the features will be given a value in between. Do not forget that Benefit and Penalty are independent of each other. You can play Planning Poker or do Magic Estimations to get the values, but remember that, to get good estimates, the numbers are just a side effect of the discussion, so do not try to cut it down to get the results faster. You need to take a business point of view, so you should be looking at the estimations from the customer’s viewpoint. You might say that this is not very different from what you usually do, but the need for the two different perspectives of Benefit and Penalty will make sure you do not omit any important aspect. Most prioritization done by companies only uses intuition, usually just considering the Benefit side and only reflecting on the Penalty in very significant cases, if any at all.
As soon as you have those values, you can add up the estimates and the result stands for Business Value (BV):
Benefit + Penalty = BV
The numbers will be somewhere between 0 and 200. You could simply mark it done and just prioritize your backlog according to the business value, and it might seem to be right. However, in many cases, you need to play a bit longer and let the team estimate Complexity so you can compare the ratio of the cost of business value for each user story. The result of the calculation is the priority of the backlog item:
Priority = BV / Complexity
You will see that the “quick wins”, where the cost of business value is cheap, are escalated to the top of the backlog, while the extensive and difficult features with limited value are moved to the very end. Note that these are just numbers, so if you do not like the result, feel free to change it. However, you might consider having a closer look at it and recalling the discussion once more. Usually you will find that the Benefit and Penalty were not estimated correctly as independent values or, even more likely, that the user story must be split into smaller stories to improve the ratio, as Business Value and Complexity are never distributed equally over the functionality. You will find out that there are some elements which are delivering value and might not be so difficult to implement; while there are other elements which have only a limited business value and these might be the ones that are pulling the feature down. For example, drawing some data in a chart with a few pre-defined filters might be enough to satisfy the user requirement, but enabling customers to create the filters might be the difficult part. Do not forget that, according to several studies, about 60% of successful projects are never or hardly ever used. It is hard to cut the functionality, but if you involve customers in the prioritization process and explain to them the cost of the feature they might quickly come on side.
The Relative Weight Game is not very well known by the Agile community, but it delivers very good results in any product-oriented development. More than that, it is easy to implement and fun to play as well.
The article was published in Agile Records No14, May, 2013