One of the most important aspects of software planning and release management is prioritization of requirements. In this post, we are going to look at the the importance of prioritization, approaches of prioritization and challenges of prioritization.
As per IIBA BABOK Guide:
Prioritization provides a framework for business analysts to facilitate stakeholder
decisions and to understand the relative importance of business analysis
Prioritization of requirements refers to development of an ordered list of requirements in order of their release order. This exercise is conducted in the presence of stakeholders, who are in a position to take a call on the priority of requirements.
Prioritization of requirements is important for multiple reasons:
Version 3 of IIBA BABOK guide provides the following approaches to prioritize requirements:
Grouping/Ranking based approach: In these methods, the focus is on to assign a ranking or priority indicator to each requirement based on the discussion with the stakeholders. So, we can assign high/medium/low or numerical values to the requirements. Examples of these methods are Ranking, Voting, MoSCoW etc. We are going to discuss a couple of them.
Time Boxing/Budgeting approach: This approach is taken based on availability of resources. In a way, this is a constraint based approach. Based on availability of resources like team size, time frame and budget, the prioritization of requirements is decided.
Negotiation based approach: This is a consensus based approach, where stakeholders are engaged in a discussion. They brainstorm and agree on an ordered list of requirements.
Numerous techniques are used for prioritization of requirements and they have been used in different conditions. Some of these are as follows:
This can be a long list, you can find more methods if you search. In this post, we can’t discuss all of them. I have selected couple of techniques based on their applicability in most of the scenarios.
This is one of the simplest techniques used for prioritization of requirements. In this technique, we simply group requirements with the following prioritization groupings:
That’s how the acronym MoSCoW originated. It’s a simple to understand technique and simple to implement. All the stakeholders discuss and arrive at the prioritization of requirements.
In this technique, a numeric rank is assigned to each requirement. The numeric values could be 1 to 10. Requirements with highest numeric value are then arranged and become the prioritized list of requirements.
There are other techniques which are based on prioritization by categorizing the requirements as high, medium, low essentially. There could be many variations of these technique but essentially the approach remains the same.
Even though voting, ranking and MoSCoW techniques are simple techniques, there are some practical pitfalls. These can really create difficult situations for every business analyst.
I would like to highlight one of the challenges, which is critical and can spoil the prioritization effort. While discussing the relative importance, you can run into the following issues
These are real challenges and as a business analyst or a project manager, you will definitely end up in these situations. So how do we handle them?
One of the important aspects is to add a constraint to our prioritization techniques so that customer stakeholders have a better way to decide on the priority.
What could be this constraint? These constraints can be time related, cost related or penalty related. So if we can ask the following questions, the task of prioritization of requirements become easier:
Let me briefly mention two important techniques to use a constraint based approach to prioritization.
Kano analysis was designed by Prof. Noriaki Kano in 1980. It was not designed for software industry but is being used quite effectively in all iterative methodologies like SCRUM. In this methodology, a question based approach is used. All the participants are asked questions to answer questions based on importance:
You can ask these questions for every requirement and then categorize the importance based on the following matrix:
As you can see, the left side of the image actually shows the prioritization category. This technique is quite relevant if number of stakeholders is high or they can’t agree on the prioritization
This technique is mentioned in this article on process impact website. This article is written by Karl E. Wiegers. He talks about this quantitative approach. He has used a cost and penalty based approach. In this technique, each of the requirements is assigned numeric values to penalty, cost and risk. The final chart is shown in this article, which has a quantitative prioritization value for every requirement.
Prioritization of requirements is an important aspect of software development in the modern world. It helps in helping customer realize the business value quickly. It’s an important arsenal in the armor of every business analyst or project manager.
Techcanvass is an IT training academy for professionals offering courses in Business Analysis, automation testing and analytics. We are an IIBA Endorsed education provider (EEP) for providing IIBA certification programs.
Our business analysis courses are: