Non-functional requirement template
Four mandatory parts and two useful ones. Three filled-in examples: response time, recovery after failure, and log retention.
A template for writing a non-functional requirement with four mandatory parts — property, value, conditions, method — and two useful ones: where the number came from, and when it is checked. Why a requirement missing any of the four cannot be checked is covered in the piece on testable non-functional requirements.
Form
NFR <NFR-NN> <property and object: “Search response time”>
Property <what exactly is measured>
Value <the boundary; for time — percentiles, not the average>
Conditions <data volume, load, time, type of operation>
Method <where, with what, from which data>
When <on staging before release / in production from logs / a drill>
Who <who checks, and whom they report a violation to>
Source <current-version measurement / cost of downtime / comparables — assumption?>
Review <when to come back to the number>
Examples
Performance.
NFR NFR-03 Catalogue search response time
Property time from request to server response
Value 95% of requests within 1 s, 99% within 3 s
Conditions catalogue of 500k items, 200 concurrent users
Method load test using a profile of a week of real queries
When on staging before every release; in production — 24 h of logs
Who load tester; a violation blocks the release
Source current version measured: 95% — 1.4 s; target — no worse, and faster
Review when the catalogue reaches 1M items
Availability and recovery. Two numbers set separately: how much data can be lost, and how fast the system must be back.
NFR NFR-08 Recovery after database server failure
Property data loss and recovery time
Value loss — no more than 15 minutes of work;
recovery — within 2 hours
Conditions complete failure of the primary server during working hours
Method drill: restore from backup onto a clean machine
When once a quarter
Who operations; report to the product owner
Source assumption: an hour of downtime ≈ an hour of revenue; confirm with finance
Review after the drill
Retention. A requirement that cannot be added retroactively.
NFR NFR-12 Retention of the operator action log
Property retention period and completeness of records
Value every change to an order’s status and amount: who, when, was/now;
kept for 3 years, then deleted
Conditions all roles allowed to modify orders
Method sample of 20 changes from last month — all present in the log
When at acceptance and every six months
Who analyst and security
Source contractual obligations to customers
Review when contract terms change
Notes on the fields
| Field | Common mistake | Done right |
|---|---|---|
| Value | Average time | Percentiles: 95% and 99% |
| Conditions | Empty — “normal load” is implied | Numbers: volume, users, peak |
| Method | “Check performance” | Tool, profile, data source |
| When | Not stated — the test is never scheduled | A point in the release cycle, or a cadence |
| Source | A number “off the top of the head” passed off as fact | Where it came from; if an assumption, say so |
A non-functional requirement with “Method” and “When” filled in becomes an acceptance criterion by itself — there is no need to rewrite it in another format.