What is Requirements Management? Also, explain the Enduring and volatile requirements phase.
The requirements for large software systems are always changing. One reason for this is that these systems are usually developed to address “wicked’ problems. Because the problem cannot be fully defined, the software requirements are bound to be incomplete. During the software process, the stakeholders’ understanding of the problem is constantly changing. These requirements must then evolve to reflect this changed problem view. Furthermore, once a system has been installed, new requirements inevitably emerge. It is hard for users and system customers to anticipate what effects the new system will have on the organization. Once end-users have experience with a system, they discover new needs and priorities:
- Large systems usually have a diverse user community where users have different requirements and priorities. These may be conflicting or contradictory. The final system requirements are inevitably a compromise between them and, with experience, it is often discovered that the balance of support given to different users has to be changed.
- The people who pay for a system and the users of a system are rarely the same people. System customers impose requirements because of organizational and budgetary constraints. These may conflict with end-user requirements and, after delivery, new features may have to be added for user support if the system is to meet its goals.
- The business and technical environment of the system changes after installation, and these changes must be reflected in the system. New hardware may be introduced, it may be necessary to interface the system with other systems, business priorities may change with consequent changes in the system support, and new legislation and regulations may be introduced which must be implemented by the system.
Requirements management is the process of understanding and controlling changes to system requirements. You need to keep track of individual requirements and maintain links between dependent requirements so that you can assess the impact of requirements changes. You need to establish a formal process for making change proposals and linking these to system requirements. The process of requirements management should start as soon as a draft version of the requirements document is available, but you should start planning how to manage changing requirements during the requirements elicitation process.
Enduring and Volatile Requirements
Requirements evolution during the RE process and after a system has gone into service is inevitable. Developing software requirements focuses attention on software capabilities, business objectives, and other business systems. As the requirements definition is developed, you normally develop a better understanding of users’ needs. This feeds information back to the user, who may then propose a change to the requirements. Furthermore, it may take several years to specify and develop a large system. Over that time, the system’s environment and the business objectives change, and the requirements evolve to reflect this.
From an evolution perspective, requirements fall into two classes:
Enduring requirements These are relatively stable requirements that derive from the core activity of the organization and which relate directly to the domain of the system. For example, in a hospital, there will always be requirements concerned with patients, doctors, nurses, and treatments. These requirements may be derived from domain models that show the entities and relations that characterize an application domain (Easterbrook, 1993; Prieto-Díaz and Arango, 1991).
Volatile requirements These are requirements that are likely to change during the system development process or after the system has become operational. An example would be requirements resulting from government healthcare policies.
Harker and others (Harker, et al., 1993) have suggested that volatile requirements fall into five classes. Using these as a base, I have developed the classification.