Requirements
Requirements in Release Cadence capture what your product must do before you start designing or building. They sit between customer feedback and your design documents — turning survey insights into structured, reviewable specifications that your whole team can align on.
Types of Requirements
Release Cadence supports two levels of requirements:
- Project requirements — Global requirements that apply across the entire project. Use these for non-negotiables like tech stack constraints, performance targets, security standards, and accessibility compliance. They are organized into sections: General, Tech Stack, Performance, Security & Compliance, Accessibility, and Other.
- Feature requirements — Requirements specific to a single feature. These describe what that feature must do, how it should behave, and what constitutes done. They are created from inside a feature's detail page.
Tip: Project requirements are automatically included in every checkpoint and design document. You don't need to repeat global constraints on every feature requirement.
Requirement Fields
Priority (MoSCoW)
Every requirement has a MoSCoW priority that tells the team how critical it is:
- Must — Non-negotiable. The feature cannot ship without this.
- Should — Important, but there is a workaround if it cannot be delivered in this cycle.
- Could — Desirable but not necessary. Include only if time allows.
- Won't — Explicitly out of scope for this release. Documents the decision so it doesn't resurface as a surprise.
Type
The type categorizes what kind of constraint the requirement describes:
- Functional — Describes behavior the system must exhibit ("The user can filter results by date").
- Non-Functional — Describes quality attributes like performance, reliability, or scalability ("The page must load in under 2 seconds").
- Constraint — An external limitation the solution must operate within ("Must run on the existing AWS infrastructure").
- Assumption — A premise the team is taking as true, which should be validated ("We assume users have a modern browser").
Status
Requirements move through three statuses:
- Draft — Still being refined. Not yet ready to be locked into a checkpoint.
- Ready for Checkpoint — Reviewed and agreed upon. Will be included in the next checkpoint.
- Committed — Locked into a checkpoint. The requirement is now part of the immutable record for that design cycle.
Acceptance Criteria
Each requirement can have one or more acceptance criteria written in BDD-style (Behavior-Driven Development) format. Acceptance criteria are the concrete, testable conditions that prove the requirement has been met.
The format is Given / When / Then:
- Given — The starting state or precondition.
- When — The action the user or system takes.
- Then — The expected outcome.
Example:
Given a logged-in user on the features page
When they click "Add Feature" and enter a feature name
Then the new feature appears in the project roadmap
You can also add edge cases to each criterion — for example, what happens when there are no responses, or when the export file would exceed a size limit.
Creating a Requirement
Feature requirement
- Open a feature from your project roadmap.
- Navigate to the Requirements tab on the feature detail page.
- Click Add Requirement.
- Enter a title and description.
- Set the priority (MoSCoW) and type.
- Optionally add acceptance criteria using the Given/When/Then fields.
- Save the requirement. It starts in Draft status.
Project requirement
- Go to your project's Settings.
- Select Project Requirements.
- Click Add Requirement in the relevant section (e.g., Performance, Security).
- Fill in the fields and save.
Marking a Requirement Ready
When a requirement has been reviewed and agreed on, change its status to Ready for Checkpoint. Only requirements in this status are included when you create a checkpoint.
You can update the status from the requirement's detail view or from the requirements list using the inline status dropdown.
Best Practices
- One idea per requirement. Avoid combining multiple behaviors in a single requirement — it makes acceptance criteria harder to write and testing harder to verify.
- Write from the user's perspective. Functional requirements should describe what the user or system can do, not how the code should be structured.
- Use Won't deliberately. Explicitly marking something as Won't is more useful than leaving it unaddressed. It shows the team has considered and deferred it.
- Link survey evidence. Requirements that trace back to customer feedback are easier to defend in planning sessions and less likely to be deprioritized.
- Review before checkpointing. Treat the "Ready for Checkpoint" status as a team gate — not a solo decision. A brief async review catches ambiguities early.