Design Document
Much of a successful software project revolves around documentation. It allows your team to onboard new members quickly, helps all stakeholders agree on how things should work, and keeps your team on track.
1. Executive Summary
State the purpose of your project.
Background and Problem Statement
- Describe the problem you are trying to solve and the reasoning behind why your project exists.
- Survey related work in the same area, and explain why what you are doing is different or novel. Include references to related work.
2. Proposal
Define the goals for your project. One of the most difficult things when tackling large projects is breaking them down into smaller pieces that can be reasoned about easily.
Goals
Provide a list of high level goals. For each goal, describe the component(s) that need to be researched and built.
In the breakdown of each component, please discuss any alternatives that were considered and list their pros/cons. This shows that you’ve done your research into the best solution.
Requirements
If there are any constraints you are working under, outline them in this section.
Non-Requirements
There may be some functionality that you choose NOT to implement despite it being within scope of the project. Describe any functionality your team decides against implementing.
Stakeholders
Who are your clients? Who are your customers? Who will do the work if your design and project are approved? Remember that your project should be firmly rooted in serving those stakeholders.
3. User Stories
Describe the core User Stories. User stories can be a way to express requirements.
4. Architecture
Include a diagram of your proposed project solution. Make sure you describe each element or component of the diagram in text in this section, as well as how you expect the components to interact.
5. Design Details
Use this section to provide details on both the technical/functional requirements of your proposed design, and the additional, non-functional requirements.
6. References
A list of references to related work.
7. Changelog
Every time you change this document, log it here and explain what was changed. This will help track the evolution of your project.
8. Meeting Log
EVERY team meeting should be logged here. Include the duration, team members who were present, and the purpose of the meeting.