Design Doc Template:
- Problem Definition
- what problem does thefeature solve?
- why is it needed?
- Use Cases
- sequence of simple steps on how users interacts with the feature
- Interaction with Current System
- does this feature build on an existing feature? if so, how?
- how does the user interact with the new feature from outside the system
- how does the new feature interact within the system
- Requirements
- focus on what functionality must exist and minimize discussion of how that functionality will be implemented
- list items out of scope
- Design
- give a high level description of the implementation
- algorithms and/or data-structures involved, this may be in the form of pseudo-code
- failure analysis
- Future Work
- what additional work is related or could be done, but is not included in this design