We often get asked the question: “What is the difference between functional requirements and non functional requirements?” Let’s take a closer look at these two complimentatry concepts.
Functional Requirements Defined
According to ReQtest a functional requirement simply tells a system to do something specific. On it’s own, this definition does not really suggest much, but let’s take a real life example to provide more clarity. Functional requirements essentially describe what the product must do or the steps it is going to have to take to perform that action. For instance, everytime a customer places an order online, a confirmation email is sent to them. As a general rule, functional requirements are usually written out as “shall” statements. Here is another great example I found on Volere.co.uk:
Types of functional requirements:
- Business Requirements
What is a Non Functional Requirement?
Now that we have a better understanding of what a functional requirement is, let’s explore non-functional requirements. According to Stack Overflow, a non fucntional requirement requirement elaborates a performance characteristic of a particular system. Using the florist and the email example we looked at earlier, a non functional requirement would be the amount of time before an email confirmation is sent out to a customer after he places his order: In other words, “The customer shall receive an email confirmation 5 minutes after his order has been placed online.”
Non functional requirements fall into many of these catgeories:
- Capacity, current and forecast
- Response time