Requirement patterns - Introduction

Definition

  • Traditional approach: Up-to-front. Requirements specified before moving to development.
  • Extreme approach: software production as rapidly as possible.
  • Incremental approach: Partially up-to-front, partially later on.
  • “What a software system is for and what it must do”. What the system needs to do, but not how.
  • The problem that has to be solved. Does not define a solution.
  • A single, measurable objective that a system must satisfy.
  • Specification = Requirement documents
  • Levels = Structure = Epics / Stories / etc.
  • Functional vs Non-Functional

Requirements position on the big picture

  • Stages of development
  • Sample stages (not necessarily isolating one od each other): Scope > Requirements > Design > Development > Testing > Deployment
  • Iterative processes

Principles

  1. Specify the problem, not the solution.
  2. Specify the system not the project. Write every specification to be timeless.
  3. Specify the formal and informal parts. Requirements as a contract of what must be delivered. The readers need background, context, flow and structure.
  4. Avoid repeatition = Less inconsistencies and Extra work