Requirements Engineering
Systematic process for eliciting, analyzing and managing requirements for systems and products. Aims to ensure traceability, prioritization and to reduce misaligned development.
Classification
- ComplexityMedium
- Impact areaBusiness
- Decision typeOrganizational
- Organizational maturityIntermediate
Technical context
Principles & goals
Use cases & scenarios
Compromises
- Incomplete or conflicting requirements
- Scope creep due to insufficient control
- Misunderstandings between business and engineering
- Formulate small, testable requirements
- Continuous validation with stakeholders
- Ensure traceability from requirements to tests
I/O & resources
- Stakeholder interviews
- Business and product goals
- Existing system documentation
- Requirements specification (e.g. user stories, SRS)
- Prioritized product roadmap
- Traceability matrix
Description
Requirements engineering is the systematic process of eliciting, analyzing and managing requirements for a system or product. It aligns stakeholder needs with technical specifications, reduces rework and supports traceable decisions. Core activities include elicitation, specification, validation and change management. It is essential for delivering fit-for-purpose solutions.
✔Benefits
- Fewer misdevelopments through clear requirements
- Better prioritization of features by business value
- Higher stakeholder satisfaction through transparency
✖Limitations
- Effort and cost for extensive specifications
- Over-specification can reduce flexibility
- Dependence on stakeholder availability
Trade-offs
Metrics
- Requirement stability
Share of requirements unchanged across iterations.
- Traceability
Percentage of requirements with trace links to implementation/tests.
- Number of open ambiguities
Count of requirements still ambiguous or conflicting.
Examples & implementations
Use-case driven specification
Requirements described and prioritized based on concrete user scenarios.
User stories with acceptance criteria
Agile teams use user stories plus clear acceptance criteria for validation.
SRS (Software Requirements Specification)
Formal specification for contractual or regulatory purposes.
Implementation steps
Identify stakeholders and clarify goals
Elicit and prioritize requirements
Validate, document and trace requirements
⚠️ Technical debt & bottlenecks
Technical debt
- Incomplete documentation hinders later changes
- Missing traceability increases cost of defects
- Inconsistent requirements cause integration problems
Known bottlenecks
Misuse examples
- Skipping prioritization leads to scope creep
- Documenting technical details instead of user needs
- Selecting stakeholders by availability rather than relevance
Typical traps
- Fixing requirements too early
- Unclear responsibilities for requirements
- Lack of traceability between artifacts
Required skills
Architectural drivers
Constraints
- • Time and budget constraints
- • Regulatory constraints
- • Technical legacy conditions