Skip to content

Latest commit

 

History

History
49 lines (33 loc) · 1.98 KB

TEMPLATE.md

File metadata and controls

49 lines (33 loc) · 1.98 KB

Title

Author Date Proposed Last Updated
Your Name 1/1/1970 1/1/1970

Background

Context

Brief explanation of the problem context (why is this a problem?)

Problem Statement

A succinct (one-sentence) statement of the problem (what actually is the problem?)

Scope

Where does the problem start and end?

Goals

  • First goal
  • Second goal

Non-Goals

  • First non-goal
  • Second non-goal

Design Overview

A brief, high-level explanation of the proposed design. It's probably best to avoid subsections here, or it can quickly devolve into a detailed design. Often this is headlined by an overall system diagram. Important new or changed APIs with examples should definitely be included here.

Detailed Design

Skip this section in your first draft

Component-by-component sections, data, etc., as relevant to the particular system. These should include sketches of credible implementation plans mentioning specific technologies. They don't need to be so detailed that they are equivalent to writing the code.

Additional Resources Needed

Skip this section in your first draft

What new machines, people, money, etc. are needed to complete implementation?

Cross-Cutting Concerns

Skip this section in your first draft

How your design affects other teams or parts of the software. Very project-specific. This includes API changes you might need, disruptions of others' work, etc.

Alternatives Considered

Two or three credible alternatives to your proposal in "Design Overview" covered in equivalent detail.

These should be different in relevant dimensions (i.e. 3rd party vs 1st party, complexity vs performance). This should almost always include the dumbest/simplest possible way of solving the problem as a baseline, regardless of whether you consider that to be a practical choice. "Do nothing" is also an excellent scenario to consider for most design changes, though not super relevant to this particular design.

Alternative 1

Alternative 2