Requirements engineering aims to define, document, and maintain software requirements along the entire application development lifecycle. When working with the Waterfall method, this is usually done at the beginning of the development, whereas with the Agile method, requirements definition and subsequent changes are continuously occurring throughout the incremental development process.
The thing with RE is that it's extremely difficult to get right. It's a time-consuming and therefore costly process that involves intensive collaboration, and many iterations before the right requiremenst are defined. And so companies working with a wide range of similar products, it's very important to avoid having to do the whole process over and over again. Therefore, requirements re-use is an essential process for teams working on a lot of product variations that build on the same base product, or at least share common components.
The level of reuse is one of the indicators of the maturity of requirements management processes. It is Important to highlight that we can define certain maturity levels of requirements management, depending on the number of products, projects, requirements, and the complexity of change and variants management.
- At the most rudimentary level, requirements are defined, stored, and shared in MS Word or Excel documents. These may be circulated via emails, or via shared folders. Either way, as there may be several contributors to the same set of requirements, this method has a tendency to induce confusion.
- The second level in RM maturity is when a document management system is in place which helps sharing and versioning requirements documents.
- Level three requires the use of a specific requirements management system with import and export functions to and from MS Office solutions, as well as workflow definition and online editing features.
- Once we talk about a really large number of projects and requirements that have to be used across multiple projects, the demand for mature RM and the reuse of requirements is increasing. The ability to reuse shows a high maturity level of requirements management.
The level and means to reuse requirements depends on the maturity level of the organizations' requirements management processes. Reuse is a must at organizations that have to handle 100+ projects with thousands of requirements. Reuse is also important for those who have a number of similar projects, where a significant part of the requirements are the same across projects due to standard regulations, or where certain components are shared by multiple products. Therefore, requirements reuse also supports the management of product variants, which is important in industries such as automotive development.
If an organization is progressing on the maturity curve with respect to requirements management, is managing multiple projects and thousands of requirements in parallel, and is seeking to reduce complexity, lower cost of development, and shorten innovation cycles, then requirements reuse is a practice that should be investigated.