In the previous chapter, we learned about elicitation planning and the different tools and techniques of elicitation. You got the opportunity to transform the business user’s expressed and unexpressed intentions, thoughts, and ideas into formalized requirements. You have a complete list of clear, consistent, complete, and validated requirements. Now, we need to review and sift through this huge list of requirements and work on prioritizing them. We have limited resources and we cannot deliver everything. To enable businesses to realize optimum business value by addressing the most pressing and important requirements, we need some kinds of prioritized requirements. For this, we need to identify the requirements that are valuable and group them.
In this chapter, you will learn about the process of managing requirement prioritization based on urgency and relative importance. You will work with the stakeholder/subject matter experts and rank requirements that are identified during the requirement identification phase. You will learn about the methods to identify important tasks that provide business value. You will also learn about the dependency map between various requirements and how to prioritize dependencies without creating gaps in the requirements flow. We will conclude this chapter by reviewing proven techniques for managing meetings, resolving conflicts, and getting consensus and agreement from stakeholders.
We will be covering the following topics:
Requirement prioritization enables you to identify the most important business needs so that the next phase of the project can work on these important requirements. The most challenging task is how, as a business analyst, you manage conflicting priorities based on stakeholders having different goals and priorities. It is highly recommended to initiate ranking or staking requirements from the elicitation phase itself. From my experience, by starting early, you may easily identify about 50% of the top priorities that you think may go into the first release. Prioritization helps you plan the implementation and layout of the roadmap.
Any project has a limited budget, definite duration, and finite resources. Prioritization helps with managing requirements and the allocation and utilization of resources effectively and productively. It helps us focus on putting our efforts into implementing the most critical requirements that matter most. By prioritizing, we are identifying and defining when requirements get addressed and implemented. This helps us improve communications and keep everyone transparent. Many times, I have experienced that the prioritized list keeps changing. When socialized with stakeholders, they rethink and redefine what they need now versus later. This helps us to move requirements around and prioritize them to get the most benefit for everyone.
Prioritization activity should be iterative, at our workplace, we revisit this list every 3 to 6 months and adjust it based on the needs at that point in time. New requirements will be added and they may take higher priority, whereas the existing prioritized ones may be dropped as we found a new way to better address the needs. This list also helps us in creating project/product roadmaps. You can group them into various releases, such as numbers 1 to 10 from the prioritized list go into Release-1, numbers 11 to 20 go into Release-2, and so on. Sales and service team members do not have the patience to wait for years to see the solution, especially with Salesforce implementations. After we get the agreed prioritized list, we create a roadmap for the next 12 to 15 months, spacing releases every 3 to 6 months depending on the complexity of the deliverables. Good prioritization helps us with building these roadmaps and this, in turn, helps us plan project activities and keep stakeholders informed on when they can see the finished working product.
To enable effective requirement prioritization processes to happen, we need to use objective consensus methods to remove any bias. Let us look at some of the frameworks that we can utilize. Sometimes, you have to use a combination of frameworks to achieve results.
These frameworks will aid you and your stakeholders in better decision-making. None of the techniques can work in isolation and it needs to be a collaborative effort. Understanding the available techniques will help you pick one that provides the most actionable results.
The following are some of the techniques/frameworks. Use the ones that work best for you:
You need to employ more than one method to get to the correct prioritizations.
I often use the MoSCoW method, weighted ranking, and story mapping for prioritizing my requirements. This is what I prefer to do:
Figure 3.1 – Prioritized requirements with each priority subprioritized
Next, we lay it on our roadmap. Based on time, budget, and resource availability, we pick X number of prioritized requirements for each release. In practice, some of the High-priority requirements will fall in Release-2. This is when the team needs to work collaboratively and see which ones are needed during Release-1 and which ones can wait until Release-3. Most conflicts arise in this kind of situation, as reality does not meet the perceived expectation. You, as a savvy business analyst, with the help of the project sponsor and project manager, need to show your negotiation skills and get everyone on the same page to agree. It’s not that these techniques or methods produce a well-prioritized list, it is the team that does that collaboratively. You can use one or more of these techniques or your own techniques.
The following figure shows an example of a multi-year roadmap for a sample of prioritized requirements. Adding a roadmap element to your requirement prioritization activity sets expectations with stakeholders and project team members and keeps the overall requirement process transparent:
Figure 3.2 – FY2022/FY2023 Multi-year project roadmap
Let us review some of these techniques. We are not getting into details as that is not the aim of this chapter.
The MoSCoW analysis categorization (or MSCW excluding vowels) stands for must have, should have, could have, and would have:
In this technique, we arrange user stories for an end-to-end process in a sequence in a specific order of importance. By reviewing the stories along the process from start to finish, both the critical paths and possible alternate paths, we will be able to identify gaps as well as stories in the wrong position or undesired stories along the way. This will help during the prioritizing session in rearranging the stories for a more effective future state. This is like connecting all the dots to make a complete picture. When you see the end-to-end big picture, you can easily see the missing, misplaced, and redundant dots.
This method also lets us map the dependencies, such as the connection between the stories in the sequence of flow. Story mapping helps us find missing or unwanted events, which in turn helps us to refine prioritization. If managed well, story mapping gets the best outcome by complementing each other with other techniques.
A sample story mapping event flow is shown in Figure 3.3:
Figure 3.3 – Story mapping business event flow with missing requirements
For simplification purposes, we added only the story name and depicted this in the process flow format. When discussing with stakeholders, you can write each event on a story card and rearrange the story cards until you have the most optimal story that fits your business needs. You can think of each activity as a story card. This rearrangement will automatically give you the right priority for each of the story cards.
Now you know there are different prioritizing techniques, and you can pick ones that suit your project. In the next section, let us review and see how we can establish dependencies between requirements.
There exist functional dependencies between requirements, either from the same projects or from other project initiatives, and this will lead to reprioritizing requirements. We need to identify cross-functionality dependencies and prioritize requirements to align them by understanding dependencies between processes, systems, and teams.
You can identify requirements dependencies by reviewing or creating end-to-end process flows, function and system diagrams, and conceptual flows.
In this example, let us assume we have requirements from A to J, as listed in Figure 3.4, with priority values from 1 to 10. We stack-ranked them in our first iteration and in the second iteration, we used the dependency mapping technique and discovered that two specific requirements are linked together and need to be implemented at the same time; if not, neither will work:
Figure 3.4 – Requirement prioritization options
Let us analyze this step by step.
Option 1 is our first draft of prioritized requirements. We discovered that requirements A and F are interdependent. Implementing this option makes A unusable unless F is implemented.
We have multiple ways to address this dependency. For simplicity reasons, let’s say we came up with two other options.
Move F next to A and implement priorities 1 and 2 together as one unit. Now you are knocking others down. This is Option 2.
If feasible, split A into Ax (independent part) and Ay (dependent part with F), so that Ax can be done now, and Ay and F later. This is Option 3.
As an example, look at the following two separate requirements:
On further analysis, we discovered that sales analysts cannot transact with customers without verifying customer identification. There is a dependency between these two requirements.
A possible solution is that we can make it into two parts:
We can identify this kind of dependency issue by using prioritization techniques such as dependency maps and be able to find workarounds. After addressing the dependency, we can reprioritize and adjust requirement priorities to get the most benefit.
We reviewed various prioritization techniques and now you are equipped with different prioritization tools. In this section, let us look at how to make the process better by effectively managing the prioritization meetings.
For the requirement prioritization meetings, only key members need to be present in this meeting. Examples include the lead business analyst, technical lead, architect, project manager, cross-functional leads, key SMEs, project sponsors, and stakeholders. The technical team, architects, and project managers will be observers and will need to contribute when their expertise is needed for confirmation and clarification. Usually, the team size should be approximately 10 to 12 people and it’s highly recommended that they are co-located in a conference room. This is not an elicitation session and you do not need to have all team members present.
These are key decision-making events where leads/managers decide what is needed, when it is needed, and how it is needed for the business unit. The management can greatly benefit as this prioritized list will be the input for an implementation roadmap for the next 1, 2, or 3 years.
You can make prioritization meetings meaningful and effective, as follows:
Factors you need to take into account while prioritizing are as follows:
Based on your project, you can use combinations of these factors. Also, the relative importance of each factor may vary between projects and between companies. During the elicitation phase, plan and obtain agreements on the prioritization procedure to make decisions on what takes priority. Make every effort to see whether you can move forward constructively and negotiate a compromise with stakeholders with conflicting priorities or requirements. Establish a conflict escalation and resolution mechanism. Justify why a specific requirement is prioritized as High and another one is rejected. Be open, truthful, and transparent, and communicate the decision as early as possible to all stakeholders.
Based on the project, culture, stakeholders, and other parameters, rather than ranking, prioritize them in groups. All requirements that belong to a group will have the same rank and they will be implemented and released together.
Let us take a look at a few pointers that might help you with your prioritization activities. They are very useful and important and can potentially save you a lot of pain and time:
Here is a real-life scenario that will help you get an idea of how to keep the stakeholder informed and set expectations. I simplified the functions so that it will be easier for you to understand and get a gist of it. The following screenshot is our documented requirements at the end of the elicitation activity. In these scenarios on the left, we have functionality for Account Management, Contact Management, and Opportunity Management in groups:
Figure 3.5 – Prioritizing requirements [before --> after]
Now, we took the documented requirements and color-coded priorities during prioritizing sessions with key stakeholders. We used ranking and story mapping techniques and came up with bucket ranking (Red – Priority 1, Aqua – Priority 2, Gold – Priority 3, and Green – Priority 4) on the right-hand side.
Let’s review the rationale:
Now we have the prioritized list, nicely colored and agreed upon by all stakeholders, which mapped each of the requirements to their appropriate priority. All is well with everyone so far, as some stakeholders with Priority 2 requirements may expect to get theirs implemented along with Priority 1 during the first release. Even worse, some stakeholders may expect even Priority 3s and 4s to be delivered during the first release. So how do we solve this?
Your next task is to place them in release buckets. Before segregating them into buckets, educate stakeholders about the release timeline, resource capacity, high-level time estimate, effort, and so on. Once everyone agrees, start dropping each requirement into various buckets starting with the highest priority to the lowest. In our simplified example, we moved all Priority 1s into release bucket 1. If you still have the capacity, you can move some of the Priority 2s into this bucket. Finally, you will be able to assign all requirements into various releases after long conversations, agreements, and disagreements. The following figure depicts the roadmaps for your requirements. This gives a glance at when a user can expect to see their requirement implemented:
Figure 3.6 – Requirements roadmap
This analysis is specific to the project. Your priorities may be different from the ones we have, even though we both have similar Salesforce implementations. As a business analyst, you have the knowledge and experience of navigating your organization and getting requirement priorities that fit your requirements.
Business analysis and project management in a true sense go by strict rules and are very stringent on what is in scope and what is not. On paper, this is all well and good, but in real work, this is not the way it works. I have seen many requests prioritized as low and these are requested by influential stakeholders and end users. 80% of these requests take only 20% of the time. Rather than wasting time on negotiations, I would go with re-prioritizing and tagging this 80% with other higher priority items. By logically grouping them, you save time during testing, training, and deployment. At the end of the day, we deliver more with a little bit more effort, but at the same time, gain the trust of stakeholders. This helped me tremendously in my later projects as these stakeholders understand that you do what is best, and since they trust you, the business analysis process gets more impactful and fun.
Note
While some may argue that project managers are responsible for project roadmaps with input from all key players, I would say there is no harm in business analysts initiating and creating one. Later, you can hand this over to your project manager (PM). By creating this during the prioritization phase, you are not only prioritizing requirements but also letting users know when they will get their requirements addressed.
In this chapter, we covered techniques that you can use to help you prioritize your requirements so that you can accurately capture business needs in the right order of priority, keeping the process transparent for all stakeholders.
You got a good idea of why requirement prioritization is important and how it helps you to identify the most important requirements that the team should address to fulfill the business need and add value. We looked at various prioritization techniques that can be used to enable the team with the prioritization process. We also showed you how to create a dependency roadmap of requirements to help you identify any gaps and opportunities to improve by adding new requirements or re-arranging existing requirements. Finally, we learned about managing prioritization meetings and getting consensus, helping you to manage conflicts, obtain consensus from all participants, and keep stakeholders up to date with the requirement priorities.
In the next chapter, we will cover process flow. We will review how to capture the current state of business and what the gaps and opportunities are, and then develop a process for the desired future state. We will also capture ways to automate processes so that users can have a great user experience.
18.191.52.96