Skip to content

Instantly share code, notes, and snippets.

@nelsonenzo
Created October 15, 2019 13:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nelsonenzo/070eadaa8babdf57f56c201525cda9f5 to your computer and use it in GitHub Desktop.
Save nelsonenzo/070eadaa8babdf57f56c201525cda9f5 to your computer and use it in GitHub Desktop.
Technical Spec Markdown Template

Summary

This is your tech spec’s abstract: the who/what/when/where/why of your entire proposal, made succinct. One or two sentences, keep it brief.

Background

Contextualize your project:

  • why build it?
  • What is the motivation?
  • What user problems are you attempting to solve?
  • What previous efforts, if any, have been made to solve this problem?

Goals

Highlight all the outcomes that you predict will result from your work, both purposeful and inadvertent.

Non-Goals

A non-goal is something you are intentionally not doing or solving with your project, even if it could be related. Defining non-goals helps limit the scope of your project and prevents feature creep.

Plan

The bulk of the technical aspects goes here.

  • Description
  • Input Parameters
var name required/optional data type description
  • Pseudo Code / Behavior Tests (It should/should not...)
  • Responses
response code response json description of when this occurs

Measuring Impact

How do you measure success? Comparitive response times? Conversions in mixpanel?

Security Privacy Risks

If the project is external-facing, list the ways in which malicious users could exploit your change.

It’s important to solicit these critiques so that reviewers can pose questions and solutions that will ultimately make your feature more robust.

Other Considerations

Source:

https://eng.lyft.com/awesome-tech-specs-86eea8e45bb9

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment