Requirements engineering turns abstract business ideas into concrete specifications that engineering can deliver against. Skip this step and the system you ship will be technically excellent and functionally wrong.
Three types of requirements shape every architectural decision:
⚙️
Functional
What the system does. Specific actions, features, capabilities that deliver business value.
📊
Quality
How well it does it. Performance, security, scalability, reliability — the non-functional characteristics.
🔒
Constraints
What limits the design. Technical, regulatory, organizational forces that bound the solution space.
Functional Requirements: What the System Does
Functional requirements describe the specific actions, features, and capabilities that deliver business value. They look simple — “the system should let users search for products” — but the devil’s in the details.
The FAB structure: Feature, Advantage, Benefit
For each functional requirement, ask three questions:
🔧
Feature
What can the system do? The technical capability.
💪
Advantage
What does the user get? The user-visible improvement.
🎯
Benefit
Why does the user want it? The underlying motivation.
Example. In a mobile payment system, biometric authentication is the feature. The advantage is removing PIN entry. The benefits are faster transactions and stronger security. All three matter — features alone get over-built; benefits alone get under-specified.
Event Storming — surfacing implicit knowledge
Event Storming is a collaborative workshop technique for discovering business processes and the functional requirements that support them. Different colored sticky notes for:
🟠
Domain events
Things that happen ("Order Placed", "Payment Completed").
🔵
Commands
Actions that trigger events.
🟡
Actors
People or systems initiating commands.
🩷
External systems
Outside services involved in flows.
🟣
Policies
Rules that fire when events happen.
🟢
Read models
The views people need to make decisions.
Lean Canvas for strategic context
Where Event Storming excels at process-level requirements, Lean Canvas provides strategic context — what problems are we solving, for which customers, with what unique value, through which channels and revenue streams. Use it to keep requirements anchored in business goals rather than feature wishlists.
Architecturally significant requirements
Not all functional requirements are equal. A few force fundamental architectural decisions affecting the whole system. Watch out for these classes:
🔌
Integration
Must talk to external systems.
⚡
Real-time
Must process events in real or near-real time.
🛡️
Security
Sensitive data, special compliance.
📱
Multi-platform
Multiple platforms or devices.
📈
Scale
Must scale to dramatically higher volumes than today.
Detailed requirements after broad scope is understood. Ask open questions about goals and motivation, not closed questions confirming assumptions.
🎨
Mockups and prototypes
Make abstract requirements concrete. A simple prototype routinely surfaces dozens of implicit requirements that no document would capture.
Quality Requirements: How Well It Works
Quality requirements (the non-functional kind) define how well the system performs its functions. Unlike functional requirements — which can usually be added incrementally — quality requirements often demand architectural decisions made up front.
The invisibility problem
Visible until they fail
Why quality is overlooked
Users don't think about response time until pages load slowly. They don't think about security until there's a breach. They don't think about availability until the system is down.
The fix
Make them explicit
Concrete, measurable scenarios. "Scalability" and "performance" are just words until you write a testable scenario.
Quality attribute scenarios
A complete scenario has six parts:
01
Step 01
Source
Who or what initiates the scenario.
02
Step 02
Stimulus
The event requiring system reaction.
03
Step 03
Artifact
The system component being tested.
04
Step 04
Environment
The operational context.
05
Step 05
Response
Expected system behaviour.
06
Step 06
Response measure
Concrete, measurable success criteria.
If you can’t write a test for your scenario, it isn’t specific enough.
The Quality Attribute Workshop (QAW)
A structured method for surfacing and prioritizing quality attributes early.
01
Step 01
Business presentation
Sets context and goals so technical teams understand which qualities matter to the business.
02
Step 02
Architecture presentation
Stakeholders see the current or proposed design.
03
Step 03
Scenario brainstorm
Generate quality attribute scenarios from all participants.
04
Step 04
Consolidate and prioritize
Remove duplication; identify the most important attributes.
A few hours in a QAW typically saves months of expensive re-architecting.
SRE: from requirement to operational reality
SRE provides a framework for measuring and managing quality in production: