Good Requirement Management is perhaps the most important factor in many projects’ successes or failures. Some research had mentioned that it can be as high as 65%. Requirement specification greatly affects the scope of the project, which in turn affects the resource and time required. In this blog, I will share my thoughts and suggestions for this important activity.
What is Requirement Management?
Wikipedia defines requirement management as a process of eliciting, documenting, analyzing, prioritizing and agreeing on requirements, and then controlling change and communicating to relevant stakeholders. All this sounds straightforward, and yet, in my experience at both large and small companies, requirement management is a huge on-going challenge. Some specific situations that I came across include:
- A major requirement got added in the last minute in the development cycle because an existing backlog requirement “suddenly” becomes important.
- A requirement was implemented but was never used because it’s incomplete and not really useful.
- A requirement listed as high priority, but when revisited, the customer doesn’t want it any more.
- Requirements that may impact the stability of the code because of large modifications to the base code, and this impact isn’t known until late in the development cycle.
- High priority customer requirements stay in the database year after year with no follow-on action.
Why should a Project Manager care?
In most companies, requirement management is largely the responsibility of the Product Manager. However, a Program/Project Manager can have a huge impact on the over all value of the product development effort, and can help to ensure that proper requirement management is being done before the start of a project or project iteration. Furthermore, once a requirement/feature gets on the project scope, the Project Manager is directly responsible for controlling change in the requirement and communicating it to relevant stakeholders.
What’s so hard about Requirement Management?
Requirement management is difficult because it requires active participation from many people, with the Product Manager as the focal point. Requirements can come from:
- The field: customers, sales team, professional services
- The strategists: product marketing, product management
- The insiders: engineering, technical support, technical writers
- The executives: CEO, VP Sales, VP Marketing, VP Engineering, …
The biggest challenge is prioritization. Getting everyone to be on the same page with respect to the priority is a daunting task, but it is a very crucial one. For proper selection of the requirements to be implemented in product development cycle, the requirements must come with a “cost estimate”, which is the sizing of the resources (largely human resources for software development). This is even more challenging because it costs resource to provide accurate resource estimates. It may take several iterations to get to everyone on the same page. Did anyone say “agile”?
Suggestions for improved Requirement Management.
The first step in proper requirement management is to recognize that requirement management is a daunting task and that proper resource must be allocated to it. Then, I suggest the following:
- Ensure that a product manager understands this key responsibility of requirement management.
- Depending on the company structure and resource availability, the marketing manager, project manager, and engineering lead can all play an active role in assisting the product manager to ensure that all requirements are kept together and kept updated.
- Use a web-based requirement management tool to allow transparency and on-going collaborative maintenance. A database type application is much preferred over a Wiki text page approach as it does not allow “slicing and dicing” based on attributes such as customer, component, theme.
- Ensure that requirements are traceable to the requester (customer, sales rep, …) with as much context information as possible. Related requirements can be grouped together for easier management.
- Employ an agile approach to requirement management, and in particular “agile estimation” when it comes to selecting which requirements get implemented in a given product development cycle.
- Ensure that the Product Manager has time allocated during the development cycle for on-going requirement clarification and re-prioritization.
While Requirement Management is largely a Product Management function, it is very important that Project Manager is well versed of the process and how well it is being followed, since requirement management has a huge impact on the success and failure of a project. Furthermore, a Project Manager is also responsible for the change control in requirements and notification of the stakeholders. And the final words in Requirement Management: keep them together, clarified and prioritized.