Functional vs non-functional requirement
What the system does, and how well it does it.
In short
A functional requirement is a behaviour: when this happens, the system does that. A non-functional requirement is a quality across behaviours: speed, security, availability, accessibility.
Side by side
| Functional | Non-functional | |
|---|---|---|
| Describes | A behaviour | A quality |
| Scope | Usually one feature | Many features at once |
| Checked by | A test of the behaviour | Measurement: load tests, audits, monitoring |
| Missing it shows up as | A feature that does the wrong thing | A feature that works but is slow, unsafe or unusable |
How to tell them apart
- If you can demonstrate it with one example, it is functional.
- If you need a number and a measurement, it is non-functional.
- If it forbids an option rather than setting a level to reach, it may be a constraint.
Example: Clinic Booking
Functional: "A patient can move an appointment up to 2 hours before it starts."
Non-functional: "The booking page loads in under one second for 95% of loads on a mid-range phone."
Why the difference matters to an agent
Agents implement behaviours well and qualities by accident. A non-functional requirement is often the only thing that stops an agent from adding a slow query or an extra round trip to a page that must be fast.