# 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