This article by Natasha Baker unveils the basics of functional requirements.
The Requirements Discovery Process
To learn the purpose of functional requirements and the role they play in developing a system or application, 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.
During the requirements discovery process project team members use fact-finding techniques to get a better understanding of the requirements of the system. Fact Finding activities include, but are not limited to activities such as:
- research
- interviews
- meetings
- questionnaires
- sampling
This process is also called information gathering or data collection.
Costly Requirements
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 enchancing 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 systm 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
Nonfunctional Requirements
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 requirements types are:
- Technical Specifications
- System Parameters
- System Constraints
- Calculations
- Data manipulation and processing
When learning about functional requirements it helps to remeber 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:
- Efficiency
- Services
- Control
- Information
- Performance
It is important to correctly classify requirements as functional and nofunctional. Doing so helps to ensure that the system meets all of the needed business requirements.
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 the functional requirement is its 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 functional requirements kep in mind they must be clear, correct, unambiguous, specific, and verifiable.
Part two of this series will outline a framework for writing good functional requirements.
Functional Requirements from Start to Finish
In part one you will learn what functional requirements are. Then in part two, you will explore five tips to help you write functional requirements.