Tech Lead Best Practices

Chapter 2 · Practice 1 of 4

Use short design docs for changes that are ambiguous or costly to undo

From Set technical direction

Why it matters

A design doc is an informal document written before coding begins that describes the high-level approach and, most importantly, the trade-offs considered. Malte Ubl's description of design docs at Google lists their purposes: catching design issues early, building consensus, considering cross-cutting concerns and recording decisions.

Common sections:

  • Context and scope: what is being built and the landscape around it.
  • Goals and non-goals: non-goals are things that could reasonably be goals but are deliberately excluded.
  • The design: the approach, with diagrams, APIs and data storage where relevant.
  • Alternatives considered: other approaches and why this one was chosen.
  • Cross-cutting concerns: security, privacy and observability.

The same article suggests about 10 to 20 pages for larger projects and a 1 to 3 page mini design doc for smaller changes.

Do

  • Write non-goals explicitly
  • Always include alternatives considered

Avoid

  • Docs that are only a step-by-step implementation plan with no trade-offs