Requirement patterns - Introduction
17 Dec 2014
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
- Specify the problem, not the solution.
- Specify the system not the project. Write every specification to be timeless.
- Specify the formal and informal parts. Requirements as a contract of what must be delivered. The readers need background, context, flow and structure.
- Avoid repeatition = Less inconsistencies and Extra work