Comparison

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

FunctionalNon-functional
DescribesA behaviourA quality
ScopeUsually one featureMany features at once
Checked byA test of the behaviourMeasurement: load tests, audits, monitoring
Missing it shows up asA feature that does the wrong thingA 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.