✦ For everyone, free.

Practical knowledge for real and everyday life

Home

Nonfunctional Acceptance Conditions

Nonfunctional Acceptance Conditions define the performance and quality criteria a project must meet before it is considered complete.

Nonfunctional Acceptance Conditions are the specific, measurable conditions attached to an individual story that define the quality standards its implementation must meet — how fast, how secure, how accessible, how reliable — translating broad, system-wide nonfunctional requirements into concrete, testable expectations scoped to that particular piece of work. While functional acceptance conditions confirm that a story does the right thing, nonfunctional acceptance conditions confirm that it does so to an acceptable standard of quality, closing the gap between general organizational expectations and the specific verification needed for any single story.


Translating Broad Requirements into Story-Specific Conditions

From System-Wide Standard to Local Threshold

A general nonfunctional requirement, such as an overall performance standard for the system, must be interpreted and applied to the specific context of an individual story, since a broad standard alone does not indicate exactly what to verify for this particular feature.

Story-Specific Condition = f System-Wide Standard , Story Context

Avoiding Restating the Same Standard Everywhere

Rather than repeating an identical, generic nonfunctional condition on every story, well-formed nonfunctional acceptance conditions are tailored to what is actually relevant and measurable for that specific story's behavior.


Common Categories of Nonfunctional Acceptance Conditions

Performance Conditions

These specify measurable response time, throughput, or resource consumption thresholds relevant to the story's specific operation, such as how quickly a particular action must complete under defined load.

Security Conditions

These specify required protections applicable to the story's specific data or access patterns, such as required authentication before an action, or encryption of specific fields the story introduces.

Accessibility Conditions

These specify standards ensuring the story's interface elements are usable by people with disabilities, often referencing established accessibility guidelines applied to the specific components the story introduces.

Reliability Conditions

These specify how the story's functionality should behave under failure conditions relevant to it specifically, such as expected behavior if a dependent service the story relies on becomes unavailable.

Compatibility Conditions

These specify which browsers, devices, or platform versions the story's functionality must support, translating a broad compatibility policy into a concrete, verifiable checklist for this story.

Nonfunctional Coverage = Performance + Security + Accessibility + Reliability + Compatibility

Verification Methods Tied to Nonfunctional Conditions

Automated Performance Testing

Load and response-time conditions are typically verified through automated tests that simulate expected usage patterns and measure results against the specified threshold.

Security Scanning and Review

Security conditions are often verified through a combination of automated scanning tools and manual review focused specifically on the story's introduced attack surface.

Accessibility Auditing

Accessibility conditions are commonly verified using a combination of automated accessibility checkers and manual testing with assistive technologies relevant to the specific interface elements involved.

Reliability Simulation

Reliability conditions involving failure handling are often verified by deliberately simulating the failure scenario — such as disabling a dependent service — and confirming the specified fallback behavior occurs.


Deciding Which Nonfunctional Conditions Apply

Relevance to the Specific Story

Not every nonfunctional category applies to every story; a purely backend data processing change may have no meaningful accessibility conditions, while a new user-facing form may have limited reliability concerns beyond standard handling.

Risk-Based Prioritization

Stories introducing significant new attack surface, handling sensitive data, or targeting performance-critical paths typically warrant more thorough nonfunctional conditions than low-risk, low-visibility changes.


Visualizing Nonfunctional Conditions Attached to a Story

Story Response ≤ 300ms Auth required Keyboard-navigable

Each surrounding tag represents a nonfunctional acceptance condition specific to this particular story, translating broad organizational standards into concrete, verifiable expectations for this piece of work.


Common Pitfalls

Omitting Nonfunctional Conditions Entirely

Focusing acceptance criteria formation solely on functional behavior risks delivering stories that work correctly but fail to meet essential quality expectations, discovered only after release.

Applying Generic Conditions Without Tailoring

Copying the same broad nonfunctional statement onto every story without considering its actual relevance produces conditions that are difficult to verify meaningfully and may not reflect genuine risk for that story.

Deferring Nonfunctional Verification Indefinitely

Treating nonfunctional conditions as lower priority than functional ones, and repeatedly postponing their verification, risks accumulating unaddressed quality debt across many stories.


Benefits of Well-Formed Nonfunctional Acceptance Conditions

Consistent Quality Across Stories

Explicit, story-specific nonfunctional conditions help ensure that quality standards are applied consistently, rather than depending on individual developers remembering to consider them.

Early Detection of Quality Gaps

Verifying nonfunctional conditions alongside functional ones, as part of normal story completion, catches performance, security, or accessibility problems before they reach production.

Clearer Accountability for Quality

Explicitly stated nonfunctional conditions make it clear what standard a story is expected to meet, supporting more objective conversations about whether a story is genuinely complete.