Exploring User Requirements and Functional Requirements
Functional Requirements vs User Requirements
Requirements are the foundation of any engineering project. And as any engineer will tell you: you need a strong foundation. Confusion tends to crop up when teams begin authoring different types of requirements, especially when defining user requirements vs functional requirements. The lines between different types of requirements blur. It may seem like a small difference, but requirements have a massive impact on project outcomes.
To effectively lead your team’s requirements process, having clear working definitions of the various types of requirements is critical.
In this blog, we will break out some of the basics, including:
- Functional Requirement Definition
- A Functional Requirement Template
- User Requirement Definition
- A User Requirement Template
Functional Requirements
Functional requirements define basic system behavior. If the functional requirement is not met, the system will not work. These requirements define what the system can do and when exactly it needs to do it – the functionality of the system.
Functional requirements define if/then behaviors and include calculations, data input, and business processes. This type of requirement details the features that allow the system to function as it was intended. Be careful not to confuse this type of requirement with non-functional requirements.
Functional requirements are related to product features, while non-functional requirements relate to product properties. In simpler terms: functional requirements are the what, and non-functional requirements are the how.
If you are interested in learning more about non-functional requirements you can read our white paper on the subject here. Functional Requirements can be considered an overarching category, containing various other types of requirements. These types include:
- User Requirements
- Business Requirements
- Administrative Functions
- System Requirements
All these requirements are considered functional requirements and should be authored as such. However, a user requirement category differs from a standard functional requirement based on the derivation of the requirement’s purpose. More on this later, first an example of a functional requirement.
Functional Requirement Template
The Easy Approach to Requirement Syntax (EARS) is often cited as the gold standard for writing clear, concise, and effective functional requirements. Using the EARS syntax we can develop a functional requirement template that can help your team improve their requirement authoring effectiveness.
Going with a basic type of functional requirement – the Event-Driven requirement. This type of functional requirement requires a response only when an event is detected at the system boundary.
WHEN <trigger> the <system name> <imperative> <system response>
Applying this template to a control system example, we get the following functional requirement:
When Continuous Ignition is commanded by the aircraft, the control system shall switch on continuous ignition.
Referring to our functional requirement diagram, you can see the input of this requirement would be “continuous ignition commanded by the aircraft,” the system behavior responds as “control system shall switch on continuous ignition,” resulting in the output of continuous ignition switched on at the correct time.
If you’re interested in learning more about EARS (you should be, trust us), head over to our EARS resource hub. Within this hub, you can find additional requirement templates and in-depth explanations of the use cases of each, and also when it’s recommended not to use EARS.
User Requirements
A user requirement, also called a user need, is a type of functional requirement that defines the end-user requirements for a system. If the user requirements are not met the end-user’s expectations will not be met.
There is no universally agreed-upon definition for “User Requirement” and “User Need,” resulting in these terms being used interchangeably and having different definitions depending on the organization’s preferences.
Most often the word “needs” will be used to describe the desires and expectations of the user before the scope has been established and they’ve been prioritized into an integrated set of requirements. Once the basic project deliverables have been agreed upon the user needs that were accepted will become user requirements.
An easier way to comprehend this type of functional requirement is to think of the user aspect as an attribute of a standard functional requirement. A user requirement is a functional requirement where the requirement’s necessity, priority, and importance are all established because the end user desires or expects it. If a user requirement is not met, the system will not work for the user. If the system or product is not working for the user, is it really working?
User requirements can start off less formal, but after refinement, should operate the same as a standard functional requirement.
When developing this type of requirement, ensure you clearly understand the users and use cases of the product. The output needs to align with the user’s expectation – interaction between the user and product must be harmonious.
User Requirements Template
Applying EARS templates again becomes useful in this instance. During your information/requirement gathering period, you may feel like user requirements can not be transitioned into functional requirements. However, after refinement and EARS application, they can.
Perhaps a user need was discovered regarding a Smart doorbell mobile App; the user would like to talk to people who are located at their door.
For this example, we can use an EARS State Driven Requirement template:
WHEN <trigger> the <system name> shall <system response>.
Then a user requirement could be:
When the Mobile App User selects Intercom, the Control System system C shall enter Two-Way Mode.
Next Steps in Your Requirement Journey
At QRA we’ve been working with requirements for a while. We understand the uncertainty that arises when a team is unaligned on the definition and application of different types of requirements. That’s why we developed a tool that solves this issue.
QVscribe, QRA’s requirements analyzer, helps ensure your functional (and non-functional) requirements are clear, concise, and effective while providing the cognitive scaffolding that allows your engineers to become better requirement authors. EARS templates are automated within QVscribe, so your authors always have the right templates at hand. Requirements are flagged for inconsistencies with INCOSE standards as they are being authored, showing you exactly where and when your mistakes occur.
The software’s configurable settings ensure that QVscribe’s analysis helps your author format requirements up to your organization’s specific standards. Your authors can set different rules depending on the type of requirements you are writing and your organization’s definition of that requirement.
Book a demo to see just how easy QVscribe can make functional and user requirements for your team.