Non-Functional Requirements

The qualities a system shall keep: each non-functional requirement with the category it belongs to and the measure that says when it is met, the categories, how to write a target and what reads them.

By the end of this page you will have written the qualities a project's system shall keep as non-functional requirements with a category and a measurable target, know which category each quality belongs to and what reads it, and know how a target is written so it can be tested.

A non-functional requirement says a quality the system keeps while it does what the functional requirements say: how fast, how available, how safe, how accessible. It is written on the same Requirements page with the same fields, plus two of its own: the category the quality belongs to and the measure, the metric and the target that say when the requirement is met. Non-functional requirements number on their own sequence (CRM-NFR-3), and the house stack brings presets for most categories: a Laravel and Livewire application has well-known answers for performance, security, accessibility and availability, and the standards step of the intake wizard will offer them once it lands.

Before you begin

You want toYou need
Read the non-functional requirementsrequirement:view-any on the project. A client guest sees the agreed ones only.
Add or change onerequirement:create to add, requirement:update to change.

Everything else on the page (opening, moving, deleting, the versions and the permissions) is as the functional requirements page describes.

Write a non-functional requirement

  1. Press New Requirement on the Requirements page and set the Kind to non-functional. The Quality and Measure fieldset appears.
  2. Pick the Category: the quality the requirement is about. The list below says what each covers.
  3. Type the Title and the Statement as for any requirement: one sentence in the shall form, in the client's words.
  4. Type the Measure: the metric, the target and where it is measured, such as p95 under 300 ms at 500 concurrent users, measured on staging.
  5. Fill the source, the owner, the priority and the verification method, and press Create Requirement.

The requirement takes the next number of the non-functional sequence (CRM-NFR-1 for the first), starts as a draft and writes its first version. A non-functional requirement without a category is refused; a category on a functional requirement is ignored.

A quality without a number cannot be tested

The system shall be fast is an opinion. The system shall render the tier page within 300 ms at the 95th percentile with 500 members browsing at once is a requirement a test can pass or fail. Put the number in the measure, say where it is measured, and pick the verification method that can produce it.

Pick the category

CategoryWhat it coversA typical measure
PerformanceHow fast it answers and how much it handles under load.p95 response time at a stated concurrency.
ScalabilityHow it grows with more users, data or traffic.Users or rows it serves without a change of architecture.
AvailabilityHow much of the time it is up, and when it may be down.Monthly uptime, and the maintenance window.
ReliabilityHow rarely it fails and how it recovers when it does.Error rate, recovery time, data loss allowed.
SecurityHow it keeps out who should be out and keeps data safe.A standard met, a control in place, a test passed.
PrivacyHow personal data is collected, kept and removed.Retention period, erasure time, consent recorded.
UsabilityHow easily a person gets things done with it.Task completion time or rate in a usability test.
AccessibilityHow people with disabilities use it, and the standard it meets.A WCAG level with zero failures in an audit.
CompatibilityThe browsers, devices, systems and versions it works with.The named browsers and versions it is tested on.
MaintainabilityHow easily the team changes it without breaking it.Test coverage, build time, a quality gate kept green.
PortabilityHow it moves between environments, hosts or providers.A deploy to a fresh host in a stated time.
ComplianceThe laws, regulations and standards it must satisfy.The regulation named and the evidence it is met.
ObservabilityHow its health, errors and behaviour can be seen from outside.Health checks, error reporting and logs retained for a period.
LocalisationThe languages, formats, currencies and regions it serves.The languages and formats it ships with.
OtherA quality none of the above names.Whatever makes it testable.

The status reference lists the categories with their codes. The readiness score will read which categories have a measure and which have none, and the standards presets will propose one requirement per category the house stack is held to.

Read the measure

The table shows the category beside the kind, and the detail flyout shows the Measure under the statement; a non-functional requirement without a measure reads No target set yet. Filter the page by category to see every requirement of one quality, or by kind to see the non-functional ones together.

All the fields

What happens next

  • The category and the measure travel in every version of the requirement and in the changes of requirement.updated.
  • The standards step of the intake wizard, the quality review and the readiness score will read the categories and the measures as those modules land.

Heimdall on this page

Quality in the flyout has Heimdall check that the measure names a number, a unit and a condition and that the verification method fits, beside everything it checks on any requirement, and score the requirement out of 100. See Quality review.

Heimdall reads the non-functional requirements through the same tools the MCP server offers and drafts them with a category and a measure when asked.

On the editor, Ask Heimdall beside each long field drafts it, improves it, shortens it, makes it testable or rewrites it as Given, When, Then; the draft waits under the field until you take it or drop it. See inline assists.

Which non-functional requirements have no measure yet?Draft the performance, availability and accessibility requirements a Laravel and Livewire portal is usually held to.Is the security requirement's measure something a test can check?

From the API and MCP

Permissions

ActionPermission
See the non-functional requirementsrequirement:view-any, requirement:view
Add or change onerequirement:create, requirement:update

Frequently asked

How is this guide?

Last updated on

On this page

What changed recentlyEvery release of Zuse Bifrost, with the pages it touched.

For AI agents: llms.txt · llms-full.txt