← All articles

Non-Functional Requirements in Scrum: A Practical How-To Guide

By XNM Technologies · August 25, 2022 · 3 min read
Non-Functional Requirements in Scrum: A Practical How-To Guide

User stories are an effective tool for capturing what a system should do. They are a poor tool for capturing how well it should do it. The performance target, the security requirement, the scalability ceiling, the reliability expectation, the accessibility standard—these are non-functional requirements (NFRs), and in most Scrum implementations they are the product backlog's least visible residents.

The consequences of neglecting NFRs are well-documented: systems that pass every acceptance test but collapse under production load, applications that ship with security vulnerabilities discovered during a penetration test three months after launch, platforms that require re-architecture to scale when user growth finally arrives. The technical debt created by deferred NFRs is qualitatively different from feature debt—it often cannot be paid incrementally and may require fundamental rework.

Why NFRs Are Neglected in Scrum

Scrum's story-centric backlog structure creates systematic pressure against NFRs. A user story has a clear beneficiary (As a...), a clear request (I want...), and a clear justification (So that...). An NFR—"the system shall respond to 95% of API calls within 200 milliseconds under peak load"—fits none of this structure neatly. It is not associated with a persona. It does not map to a sprint goal. And because it is not visible in the backlog as a discrete story, it is not prioritised in sprint planning.

The ownership problem compounds this. Functional requirements have business stakeholders who will notice and complain when they are not met. NFRs often have no equivalent advocate. Developers understand the technical implications; product owners are rarely equipped to articulate or prioritise them; and Scrum Masters—focused on process rather than product—may not surface the issue at all.

Four Practical Approaches

  1. Embed NFRs in the Definition of Done. The Definition of Done applies to every story in every sprint. Adding NFR checks here—"meets response time target under simulated load," "passes static security analysis," "accessible at WCAG 2.1 AA"—makes them non-negotiable for each increment. This works best for NFRs that can be verified quickly and automatically. It requires the team to have the tooling to perform these checks within a sprint.

  2. Express NFRs as constraints in the backlog. Document NFRs explicitly in the backlog as constraints that stories must satisfy, not as stories themselves. Pin them to the top of the backlog as reference items. When estimating user stories, the team should consider whether the story can be implemented in a way that satisfies the documented constraints.

  3. Write NFR-specific acceptance criteria. For user stories that have direct NFR implications—a login story has security implications; a data-export story has performance implications—include measurable NFR acceptance criteria explicitly. "The export must complete within 10 seconds for datasets up to 50,000 records" is testable. "The export should be fast" is not.

  4. Create dedicated NFR sprint goals periodically. For NFRs that require significant development effort—performance profiling and optimisation, security hardening, load testing infrastructure—include them in sprint goals directly. This is appropriate when NFR work cannot be embedded in feature stories without inflating estimates significantly.

The Cost of Deferral

The argument for deferring NFRs is usually framed as prioritisation: we will address performance after the feature set is complete; we will do the security review before launch. In practice, this sequencing rarely works. Features accumulate architectural assumptions that make later NFR compliance expensive to retrofit. Security vulnerabilities discovered post-launch carry reputational and regulatory costs that dwarf the cost of early prevention. Performance problems found in production load tests six weeks before go-live become crises, not backlogs.

The Scrum framework does not prevent teams from managing NFRs well. It simply does not make it automatic. Explicit, team-wide agreement on how NFRs will be surfaced, owned, and tested is what converts a framework that ignores NFRs by default into one that addresses them consistently.

XNM Consulting supports agile delivery teams in building practices that balance delivery speed with sustainable quality. Learn about our program and project delivery services to see how we help teams build quality in from the start.