The importance of prioritizing requirements

Debora Abalos
Globant
Published in
7 min readFeb 17, 2023
Photo by Debby Hudson on Unsplash

One of the main problems when we want to develop a product, is the prioritization of requirements; it is a challenge when deciding. Therefore it is essential to consider the phases and existing tools when prioritizing requirements based on cost, time, technical, and business feasibility to help us make better decisions.

In this article, I will talk at a general level about the phases of the requirements process to consider in our analysis and refinement; however, I will focus on the specification phase indicating factors, steps, and use practices that will help us to prioritize considering different scenarios, and taking into account that we all have different points of view. I will also talk about two tools I chose that will be helpful when deciding on the prioritization of requirements. In the following image, we can see some key phases of the requirements process:

Phases of the Requirements Process

Specification phase

Each of the phases is important to help prioritize. In this opportunity, we will focus on the specification phase, where the prioritization of requirements, time, and budget is analyzed. For this, it is recommended to follow the following factors considering that the business always wants or plans to include functionalities that would be ideal for them to have:

  • Value to the business: The requirements must give value to the company's business.
  • Value to the customer: The requirements must give value to the customer, who is the end user who will use the product.
  • Minimize the cost to develop: It is essential to define if what you want to do is the cheapest or the most efficient (cost-efficient) to develop the requirement that finds the solution.
  • Time to implement: It is essential to consider the implementation time since there is an established time limit, where you must evaluate the profitability and how long it will take to implement the requirements.
  • Ease of technical implementation: This factor considers the technical feasibility according to the time and budget available. It is important to evaluate the ease of technical implementation.
  • Ease of business implementation: The ease of adaptation of the company from the political point of view or of change at the technical level so that the business can adapt and understand the system and use it comfortably.
  • Obligation to some external authority: Consider assessing the laws and regulations that will be taken into account when prioritizing requirements.

Here are some steps to prioritize the requirements:

  1. Define usefulness to business (critical, important, nice to have): Having a category, attribute of the requirement, and its usefulness, define the criticality of the requirement; critical is that it has to happen; if it does not happen you can not move forward with the project. Important means it is required in the business and will be used, but if it is left out, you could still move forward with the project; there would still be value without this requirement. And nice to have is anything extra that you want to add and would be great to have, such as look & feel aspects.
  2. Estimate cost (1–5 scale): Calculate the cost, considering the technical and business feasibility and how much the implementation will cost. A scale of the implementation cost for each requirement must be defined. For example, if the requirement requires one day or just a few hours of development, it is put within the scale of 1, with 5 being the largest development time scale.
  3. Determine the time frame (1–5 scale): An estimated schedule should be made to update the implementation of the project in intervals. Example being 1 the shortest schedule and 5 the most extended schedule for each requirement.

This scale will help to determine which requirements are critical, which are not, and which are the easiest to implement from the point of view of cost and schedule or estimated cost to prioritize and justify each of the requirements to be implemented using the following practices will help us to make a better decision:

  • Keep it simple in the requirements justifying why the prioritization.
  • Business value reigns supreme, do not forget who we serve, the project is implemented for the business, and you must do your best to make a difference.
  • Remove policy prioritization. When you want to change or prioritize another requirement that came up, you must eliminate the policy prioritization. If you want to add a new requirement, you must ask for the corresponding resources.
  • Prioritize (and re-prioritize) after each iteration of the project; be able to re-prioritize all requirements or, in the end, go back and validate them after each iteration as business changes.

We must also consider that a good understanding of the product requirements depends on properly managing the paradigms we have as human beings and how we can manage them to get closer to an accurate and correct understanding of what is needed. It is necessary to see the problem or requirement to be solved from different points of view. The following image shows two people looking at the same figure, but their points of view or opinions on the same subject are very different.

Perception
Each person speaks from their point of view

Two tools to help us prioritize

Let's now look at a pair of tools and techniques that I have found useful in identifying the requirements that do or do not add value to a product.

Value Stream Mapping

Value Stream Mapping is a requirements prioritization technique that allows one to visualize an entire process, to detail and fully understand the flow of both information and materials necessary for a product or service to reach a customer, thus identifying activities that do not add value to the process to initiate the necessary activities to eliminate them subsequently.

This concept has been taken from Lean manufacturing processes for software development. The process analysis starts and ends with the activities performed by a customer, i.e., the entire process is viewed from the customer's perspective.

Because Lean principles emphasize eliminating waste and providing the most value to the customer in the shortest possible time, establishing the value map based on the customer's perspective is a good option for prioritizing requirements.

The following picture shows the drawing of a value flow map of a production system where a series of steps were followed to carry it out in an efficient way that serves for later analysis to detect processes that do not generate value and to be able to optimize, change, or even eliminate them.

Photo and information by VMS

The steps followed to build the example VMS design map are as follows: Define customer demand, add processes, add inventories, customers, suppliers, and delivery frequencies, add information flow, add material flow, and add a timeline. For more information and details of the sample VSM map design, visit the page link.

MoSCoW

This method of requirements prioritization is well known and is based on the prioritization of functionalities that it helps to understand and manage using the term MoSCoW, which is an acronym for the first letter of each of the four prioritization categories:

  • Must have (M): These requirements are absolutely critical to a project; without them, the project is a failure.
  • Should have (S): These requirements are highly desirable but not critical; the functionalities are not so urgent.
  • Could Have (C): This type of requirement has functionalities that would be nice to have, as they would add value to the project but are not critical; they are known as nice-to-have.
  • Won't have (W): These functionalities are not worth the investment and do not provide any benefit at this time, so they could be considered later.

The following picture shows an example of MoSCoW applied to a sprint and the product backlog with the requirements elements that were prioritized and ordered to deliver the maximum business value in a sprint.

Picture by Visual Paradigm

The MoSCoW framework is very powerful, as well as popular in the Agile world, as mentioned above. It is an effective and reliable prioritization method.

In Conclusion

Several prioritization methods and tools help the management of an IT project to be successful. However, I like the Value Stream Mapping (VSM) method because it helps to have a broader view of each process, understand the complete flow, and analyze which are the critical and less essential functionalities that bring value to the business. The MoSCoW method is a simple method that helps the whole team understand the software system's real needs and the criticality of each functionality.

--

--