What Is a Non-Functional Requirement? | Vantage
Non-Functional Requirement A non-functional requirement (NFR) specifies a quality attribute of the system: how it performs, how reliable it is, how secure it must be, or how it scales. NFRs define constraints on the system rather than features. They answer: "How well must the system work?"
Why non-functional requirement matters
A feature that works but is too slow, insecure, or unreliable is a failed feature. NFRs set the quality bar. They are often discovered late (when the system is too slow in production) rather than specified early (when they can be designed for). Specifying NFRs in the PRD prevents costly post-launch fixes.
How it works
NFRs fall into categories: Performance (response time, throughput), Reliability (uptime, error rate), Security (authentication, encryption, data protection), Scalability (concurrent users, data volume), Accessibility (WCAG compliance), and Maintainability (code quality, documentation). Each NFR should be measurable: "API response time under 200ms at p95" not "the API should be fast."
Common mistakes
Not specifying NFRs at all (hoping the system will be "fast enough")
Vague NFRs without measurable criteria
Treating NFRs as nice-to-haves instead of requirements
Not involving engineering in NFR definition (they know what is achievable)
Specifying NFRs that conflict with each other (maximum security AND maximum speed)
Related terms
How Vantage relates
Vantage extracts both functional and non-functional requirements from PRDs. NFRs such as performance targets, security requirements, and scalability constraints are identified and tracked alongside functional requirements, ensuring they are not overlooked during ticket generation.