Sound Software Engineering
Create a requirements document
- requirements serve as justification for spec design decisions
- set a proper context
- defend and support design decisions
- big picture answers
Design from “scratch”
- re-use is OK, but do not bolt on functionality that fundamentally changes a system
Create two levels of specification
- high-level (allows multiple implementations)
- low-level, nitty-gritty