Skip to content

Latest commit

 

History

History
77 lines (42 loc) · 2.23 KB

TEMPLATE-Software Design Document.md

File metadata and controls

77 lines (42 loc) · 2.23 KB

Software Design Doc

Design doc or technical spec.

Includes

Title and People

Title of the design doc

author(s) and reveiwer(s)

date document was updated

Overview

High level summary that is 3 paragraphs max.

Context

Description of the problem. Why necessary, what people need to know to properly asses this project, and how it fits into goals and strategies.

Goals and Non-Goals

Goals should describe impact the completed project will have. Define metrics for success and show where those are being tracked.

Non-Goals are things that will "not" be addressed by this project.

Milestones

List measurable checkpoints that others can skim quickly to track progress. Try to use calendar dates for milestones.

Include "updates" to milestones if there are changes.

Existing Solution

High level example of how the current solution works. Great spot for user story.

Proposed Solution

Work through a user's story. Start with the high level view then fill in with lots of details. This should be enough information for someone else to implement the new solution for you.

Alternative Solutions

Discuss other solutions. List some pros and cons of these alternatives.

Testability, Monitoring and Alerting

Think about this now and not later. Your future self will thank you, when something breaks or under performs.

Cross-Team Impact

  • How will this increase on call and dev-ops burden?
  • How much money will it cost?
  • Does it cause any latency regression to the system?
  • Does it expose any security vulnerabilities?
  • What are some negative consequences and side effects?
  • How might the support team communicate this to the customers?

Open Questions

Reveal or discuss open issues that you are not sure about. Contentious issues that need others input.

Detailed Scoping and Timeline

This is at the end of the document. It is high detail for the engineers working on the project, tech leads, and their managers.

Breaking down how and when you plan on executing each part of the project.

Feedback

Once the document is drafted start getting feedback.

Limit the time for feedback to avoid delays.

Discussion

Take feedback and consolidate it into a list of points that can be reviewed and discussed more.