Prioritization of Requirements

Prioritization of Requirements

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
information.

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.

Why do we need to prioritize requirements?

Prioritization of requirements is important for multiple reasons:

  • It helps in providing maximum business value withing given constraints like cost, timelines and resources. Most of the times, customer expectations are high, timelines are short, and resources are limited. In these cases, the best option is to deliver the product in the order of business importance.
  • Prioritization of requirements can also be done to minimize risk associated with the product development. Product components or modules with highest risk can be put in the high priority list. This helps in eliminating the risks and carrying on with the remaining project without any unknowns.

Approaches for prioritizing requirements

Version 3 of IIBA BABOK guide provides the following approaches to prioritize requirements:

  • Grouping
  • Ranking
  • Time boxing/Budgeting
  • Negotiation

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.

Techniques for prioritizing requirements

Numerous techniques are used for prioritization of requirements and they have been used in different conditions. Some of these are as follows:

  • MoSCoW Technique
  • Hundred Dollar method
  • Voting
  • Ranking
  • Kano Analysis
  • 100-point method
  • Requirements triage
  • Binary Search Tree
  • Bubble sort technique
  • Analytic Hierarchy Process (AHP)
  • Minimal Spanning Tree (MST) & More…

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.

MoSCoW Technique

This is one of the simplest techniques used for prioritization of requirements. In this technique, we simply group requirements with the following prioritization groupings:

  • Must Have
  • Should Have
  • Could Have
  • Won’t Have

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.

Ranking Technique

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.

Challenges of these techniques

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

  • Customer stakeholders saying that all the requirements are high in priority, that’s why we have hired you
  • Customer stakeholders not able to decide priority
  • Ego clashes and internal politics leading to a conflict and you can’t decide on the prioritization
  • Customer team is large enough and prioritization meeting is not going to work

Handling these challenges

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:

  • What is the benefit of developing this features? What is the business loss or penalty, if we don’t do it?
  • The budget is defined and within this budget as indicated against each requirements, let’s decide the priority
  • Similar constraint can be timeline as well

Let me briefly mention two important techniques to use a constraint based approach to prioritization.

Kano Analysis

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:

  • Rate your satisfaction if you have this feature
  • Rate your dissatisfaction if you don’t have this feature

You can ask these questions for every requirement and then categorize the importance based on the following matrix:

Prioritization of requirements - Kano Analysis

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

Prioritization Based on Value, Cost, and Risk

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.

Conclusion

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.

 

About Techcanvass

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:

Business Analyst Training - ECBA Certification
Business Analyst Training – ECBA Certification
Business Analyst Training - CBAP Certification
Business Analyst Training – CBAP Certification

 

 

 

 

 

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *