Save Money by Improving Requirements Practices
- Getting to the Real Requirements
- Making Your Practices More Effective
- Emphasizing Joint Commitment and Responsibility
- Summary
- References
Industry reports and analyses concerning systems development and software development activities often describe unmet customer needs, foiled user expectations, and extensive waste of resources. Root causes of requirements problems include the following:
-
The requirements provided by customers (stated requirements) are not the real requirements.
-
Suppliers (developers of systems) contribute to the problems by using ineffective requirements and project-management practices.
-
There is a lack of emphasis on joint customer/supplier commitment and responsibility for the success of the project.
Practical on-the-job experience and study of the industry literature indicate that the use of the following 10 effective requirements practices has the potential to achieve increased customer satisfaction, higher-quality products, and substantial cost savings. This set of 10 practices is provided in the order that you might logically perform them. Select the practices that are the most challenging to your organization.
-
Commit to the approach.
-
Establish and utilize a "joint team" responsible for the requirements.
-
Define the real customer needs.
-
Use and continually improve a requirements process.
-
Iterate the system requirements and architecture repeatedly.
-
Use a mechanism to maintain project communication.
-
Select familiar methods and maintain a set of work products.
-
Perform requirements verification and validation.
-
Provide an effective mechanism to accommodate requirements changes.
-
Perform the development effort using known, familiar, proven industry, organizational, and project best practices.
Where will the money come from for financing these improvement activities? Considering that 45% of typical project costs are actually caused by rework, channeling those (likely) expenditures into the front-end improvement of your project system may mean that the improvements end up paying for themselves.
Getting to the Real Requirements
An important first step in improving your process is to recognize that the stated requirements for a system or software effort are almost never the real requirements! This should be evident from previous experiences; however, humans often fail to benefit from experience. One way to address this critical issue is to form a "joint team" that includes customers/users and requirements specialists/engineers. Working together, they can evolve the real requirements. Requirements specialists are generally more familiar than other development staff with recent technology advances and also can help elicit real customer needs and expectations based on the stated requirements. The point is that a joint effort to elicit the real requirements always provides a better base for the development work. Importantly, this approach reduces rework and project costs, and enables better schedule discipline.