# Context and Scope
- overview of the context in which this new project is being built
- succinct objectives and background facts why this document exists
- links to previous information
- this is NOT a requirements document (Requirements Documents should happen before a Design Document is created)
# Goals (and non-Goals)
- what outcomes and outputs are expected from this system
# Design Proposal
### Overview
- introduction to the design proposal
### System Diagram
- embedded in the broader context
### APIs
- exposed by the design
### Data Structures and Storage
- used by the design
### Pseudo-code
- highlighting specific problem areas
### Constraints
- dependencies on legacy projects
- unaddressed requirements
- create limitations on the solution space that is allowed to implement this design
# Alternative Designs
- document what other designs were considered while creating this proposal
- document why the above design was chosen, and why the other designs were discarded
- if it is not worth writing this section, it probably is not worth creating a design document
# References
- further reading, related design docs