Requirements Engineering

Overview

Requirements Engineering is about reducing ambiguity before it leaks into design and code. The practical workflow I follow:

  • Establish a ubiquitous language and domain glossary early (DDD mindset).
  • Capture goals as outcomes, not features; write acceptance criteria in business terms.
  • Validate requirements with quick prototypes or examples (spec-by-example).
  • Track decisions and constraints; close feedback loops with stakeholders every iteration.
  • Prefer living documentation (tests, ADRs, concise diagrams) over long-form docs.

Key Bibliography

โ€ข Requirements Engineering and Agile Software Development Version 1 โ€ข Requirements Engineering and Agile Software Development Version 2 โ€ข Agile Requirements Engineering: A systematic literature review โ€ข Naming the Pain in Requirements Engineering Contemporary Problems, Causes, and Effects in Practice โ€ข Status Quo in Requirements Engineering: A Theory and a Global Family of Surveys โ€ข A systematic literature review on agile requirements engineering practices and challenges โ€ข Software Engineering by Sommerville โ€ข Shape Up by Ryan Singer โ€ข Integrated Requirements Engineering: A Tutorial