The Requirements Discovery Process
To learn the purpose of functional requirements and the role they play in developing a system or application, a basic knowledge of the requirements discovery process is needed. Requirements discovery is the process and tools used to identify system requirements of the users of the proposed system. A system requirement is a description of the needs and desires for a system or application. A system requirement describes functions, features and constraints.
Defining requirements is a primary function of a project manager but he or she isn't the only one actively involved in the process. During the requirements discovery process, project team members use fact-finding techniques to gain a better understanding of the requirements of the system. Fact-finding activities include, but are not limited to activities such as:
This process is also called information gathering or data collection.
Image Credit (FreeDigitalPhotos)
Keep in mind that the purpose of requirements discovery is to correctly identify the knowledge, process, and communication requirements for the users of a new system. Regardless of whether it is an information system or software program – failure to correctly identify system requirements may result in one or more of the following situations:
- The system may cost more than projected
- The system may be late
- The system may not meet the users' expectations resulting in them not using it
- Costs of maintaining and enhancing the system may be excessively high
- The system may be unreliable and prone to errors
Two Types of Requirements
You should now have a top-level understanding of the requirements discovery process. Now, during the fact-finding process, system users will reveal what they would like the system to do and how they would like the system to do it. These needs and desires -requirements- can be further broken down into two subgroups:
Functional requirements are functions or features that must be included in a system in order to satisfy the business needs and be acceptable to the system users. Typical functional requirement types are:
- Technical Specifications
- System Parameters
- System Constraints
- Data manipulation and processing
When learning about functional requirements it helps to remember that they should be descriptive. Normally they are identified in terms of inputs, outputs, processes and stored data.
In comparison, nonfunctional requirements focus on the properties or qualities a system must have. Typical functional requirements types are:
It is important to correctly classify requirements as functional and nonfunctional. Doing so helps to ensure that the system meets all of the needed business requirements.
Image Credit (FreeDigitalPhotos)
The Importance of Functional Requirements
It is important to remember that functional requirements should document what a system should do and not how it does it. The central point of these requirements is description of the required behavior – which must be clear and readable. The described behavior may come from organizational or business rules, or it may be discovered through the requirements discovery process. When writing your requirements, keep in mind they must be clear, correct, unambiguous, specific, and verifiable.