‘What is the one big difference between traditional project management approach and the agile methodology?’. If someone asks me this question, my answer would be one word – ‘Planning’.
In the traditional approach, the project manager spends weeks and even months in preparing the planning documents and processes for the project. On the other hand, in an agile environment, adaptive planning method is used.
As a responsible person for delivering the quality product to the customer, every now and then, I express my dissatisfaction over the way requirements are maintained in the agile projects. You may have seen the project manager talking about development and quality assurance plan, yet not a word about requirements.
The biggest challenge that comes in while talking about the requirements management, is the response ‘Who has time for requirements management planning in the agile environment? ‘ The general behavior is to take up the requirements as they come from the client and make tasks out of it for the sprint and backlogs.
Yes, you already know the key principles of agile methodology and the openness to accept changing requirements but this does not devoid one from following a proper requirements management process. Instead, it will only help to become more agile in the long run. Organized and systematic management of requirements enable the project manager and the team to quickly look up at the relevant and latest requirements, when developing a software artifact.
Let’s talk about the requirements management planning today. Let’s begin with the brief overview of requirements management planning process. We will discuss the benefits and challenges of requirements management process. Furthermore, we will have a detailed discussion to help you plan your requirements management process. In short, we will tell you what they never told you about requirements management planning.
Understanding Requirements Management Process
Requirements are the building blocks of software in the Software Development Life cycle. A requirement is a capability that is needed or desired by the customers and stakeholders. It can be a business requirements, technical requirement, functional or non-functional in nature. The aim of the project managers is to deliver a software that conforms to the customer requirements and satisfaction.
The process of documenting and managing these requirements is called ‘Requirements Management’. Documentation of requirements is not a one time activity, rather it is a continuous process that involves several activities. A comprehensive definition of requirements management process is, cited in the conference paper at PMI:
“Requirements Management is an iterative set of activities that help ensure that elicitation, documentation, refinement, and changes of requirements is adequately dealt with during a lifecycle, with a view toward satisfying the overall mission or need in a quality manner and to the customers’ satisfaction.”
Why is Requirements Management Important?
Requirements management process is a vital to lead your project to a success. The common factors associated with the project failure are scope creep, cost overrun and project delay. All these factors are directly related to the requirements. When you are unable to identify requirements at an early stage, it may land you to a situation where requirements become obvious at later stages,hence causes the delay. If you are unable to control the requirements, you might end up with scope creep and the cost overrun.
Good Requirements lead to a Quality Product
The success of a project is highly dependent on clear and correct requirements at the earlier stages. Good requirements lay the basis for a quality product delivered well in time. Imagine a situation where your architect can visualize the end product, the developers know what exact features and functionalities are needed, the quality assurance team knows the acceptance criteria against which the product will be tested – such a situation enables you to get things done right in the first time.
What happens in absence of Requirement Management Process?
Before talking about the importance of requirements management, let’s assume what would happen in absence of this process. You get initial requirements from the customers and start working. As you work, new requirements come in because initially input from all the stakeholders was not taken. With new requirements, you may have to change the current implementation which means re-work and additional cost.
As the project progresses, you are unable to track the completion of your project because you take in every requirement that comes in and you don’t know where to end. Moreover, the customer starts to send their feedback and the technical teams also start discussion – your requirements are now spill over various places such as documents, emails, chat conversations. You might also lose track of the latest version of requirements as the original requirements are replaced by new ones.
When a new person, especially QA, joins in your team, you will tell him to look at all the possible places for the requirements and test whether the product is conforming to the user requirements or not. The situation worsens and the quality of your product remains at risk.
To summarize, we can see the following challenges or problems related to an ineffective or missing requirement management process:
- Requirements are ambiguous and incomplete
- Requirements are identified at later stages, which could have been identified earlier
- Requirements are missed or overlooked at the time of implementation
- Requirements, especially change in requirements, are not communicated to all
- Different stakeholders have conflicting requirements
- Team does not know where to find the latest requirement?
- Team does not know which requirement has what priority level?
Benefits of Requirement Management Process
To avoid all this dilemma, we establish a requirements management process. A requirements management process enables you to elicit majority of requirements in time. It gives the project team a mechanism to follow when a new requirement comes in or a previous one changes. The process is designed as such to discard the obsolete requirements and keep the latest, valid requirements only.
In an effective requirements management process, you can easily look up the requirements and their details at one place. It enables you to design a solution keeping all requirements in mind; minimizing the need to alter the original solution – saving the cost and effort. More importantly, it enables you to control and track the progress of your project.
What They Never Told You About Requirements Management Planning (and, what’s important)
Usually, the requirements management process is seen as a 5-step process including investigation, feasibility, design, construction and testing, released. The output of requirements management planning process is a Requirements Management Plan (RMP). The requirements management plan contains a detailed process about how requirements will be identified, documented, analyzed, tracked, implemented and controlled throughout the project.
Now, let us talk about what they never told you about requirements management planning. In the following section, we will discuss the essential factors to be considered while doing requirements management planning:
Identification of Stakeholders
You have gathered your requirements from the customer who is paying you. Right? Have you also thought of other stakeholders of your project? If the answer is ‘Yes’, you are good to proceed. However, if the answer is ‘No’, you need to work over this.
Stakeholders are the people, group or institutions that can or can be affected from your project in a positive or negative way. The next step is to identify their interests, power, influence and impact on the project. You can take help from stakeholder management practices to make sure that your requirement management process encompasses all important stakeholders. It will enable you to identify most requirements in the beginning of the project. This means lesser number of requirements coming up at a later stage, lesser amount of re-work required and eventually saving time and money.
Gathering Complete Requirements
It is obvious that you will be gathering requirements for your project. However,the fact that you are gathering complete requirements is not obvious. Plan your management process in a way that assures producing good and complete requirements. As we know requirements lay the foundation of your software, bad or incomplete requirements might actually become disastrous for your project.
A good requirement has characteristics of correctness, feasibility, understandability, clarity and verifiability. A well defined acceptance criteria for the user stories is an indication that the team is clear over a particular requirement. Good requirements enable you to develop the right thing and test against the right parameters.
Manage Conflicting Requirements
Sometimes, there comes a situation where you have conflicting requirements. It happens when different stakeholders have different requirements. In your requirements management plan, it is essential that you analyze all requirements from the viewpoint of the whole application and identify the conflicting requirement. You might take help of your business analyst to do the analysis and identification of requirements. As a project manager, it is your responsibility to resolve the conflict in requirements and bring the stakeholders on a single acceptance criteria for the requirement.
Prioritization of Requirements
All requirements can not have the same priority in the project. You need to set up a mechanism to prioritize your requirements. In some cases, your customer directly tells you the priority of requirements. In other cases, you need it to figure it out yourself. A number of factors need to be catered while prioritizing the requirements such as stakeholder’s influence, technical constraints, budget, time, approval by authorities. You can set a priority scale for your requirement including high, medium and low.
There are several methods and strategies that facilitate your requirement prioritization process. If you don’t prioritize your requirements, your team might end up completing the least priority work first – putting off the customer. It is recommended to communicate the priorities so that developers knows what should be completed first, testers know what should be tested first and customers know what functionalities they should expect of the product.
Communication of Requirements
This may sound stream but it is one of the critical factors to make your projects a success. Your requirement management planning should include the method of communicating the requirements with the team and other stakeholders. Often, it happens that the developers and technical lead discuss the requirements and change its implementation a bit, after approval from client. A person who was absent, when the requirement was being discussed, remains unaware of the change of requirement.
Plan a requirement communication mechanism which clearly states who will inform, who will be informed, how he will be informed and when he will be informed. This will assure that all concerned people are well aware of the requirements.
Change Control Process
New requirements and change requests come in, while you are working on the project. There can be several factors to initiate a change request. The important thing is the way you handle new requirements and change requests. You can not just accept every requirement or change that comes in, else you will land in the vicinity of scope creep. Establish a change control process and implement only approved changes. You can define it within your requirements management plan or independently.
Choosing the Right Tool
Choosing the right tool assures the effective implementation of your requirements management process. You can select any tool with a powerful requirements management module which enables you to organize, track and prioritize your requirements.
In this post, we enjoyed the journey through the requirements management process. We understood that requirements management process includes the identification, analysis, documentation and tracking of requirements. Requirements management process is important because it will produce the requirements that lay the foundation of the software.
Good requirements enable us to start things in the right direction. We discussed several factors that should be considered, while you are doing requirements management planning. We have told you, what they never told you about requirements management planning.
Did you find this post useful? Do share your knowledge and let us know any surprising facts that people don’t usually mention about requirements management planning.