Tech Lead Documentation Practices: What to Document and How

By Fernando March 8, 2025 10 min read

Every engineer hates writing documentation. Including me. The problem is not documentation itself. It is the experience of writing documentation that becomes obsolete before you finish it, documentation that nobody reads, and documentation that lives in a wiki nobody can find. Those are legitimate complaints about bad documentation practices. Good documentation is different. Good documentation saves more time than it costs, and as a tech lead, it is one of your highest-leverage investments.

After 22 years, I have narrowed down the documentation that actually matters to five types. Everything else is optional. If you maintain these five documents well, your team will onboard faster, make better decisions, handle incidents confidently, and maintain architectural coherence. Here they are.

Document 1: Architecture Decision Records (ADRs)

This is the single most important documentation practice for a tech lead. Every significant technical decision gets an ADR. Not a novel. A structured, one-page document with five sections:

  1. Title: A descriptive name. "ADR-017: Use PostgreSQL for the billing service."
  2. Context: What situation prompted this decision? (2-3 sentences)
  3. Decision: What did we decide? (1 sentence)
  4. Consequences: What are the trade-offs? (3-5 bullets)
  5. Status: Proposed / Accepted / Deprecated / Superseded

ADRs solve the "why did we build it this way?" problem that haunts every mature codebase. When a new engineer asks why you are using PostgreSQL instead of MongoDB, you point them to ADR-017 instead of spending 30 minutes explaining the context. When a future tech lead proposes switching databases, they can read the original reasoning and decide if the context has changed.

Store ADRs in the code repository, not in Confluence. They should live next to the code they describe and follow the same review process.

Document 2: System Architecture Overview

A single document with a diagram of your system's components, how they communicate, and what each one does. This is not a detailed design doc. It is the map that gives a new team member the mental model of the entire system in 30 minutes.

Include:

Update this quarterly. If it takes more than 60 minutes to update, it is too detailed. The architecture overview is a map, not a turn-by-turn navigation guide.

Document 3: Runbooks for Operational Procedures

When production breaks at 3 AM, nobody reads design docs. They need step-by-step instructions: what to check, how to diagnose, and how to fix. Runbooks are those instructions.

Every service your team operates should have a runbook covering:

The test for a good runbook: could a developer from another team follow it at 3 AM and resolve the issue? If not, it needs more detail. Runbooks should be written by the person who just resolved an incident, while the steps are fresh. Make "update the runbook" part of your post-incident process.

Document 4: Onboarding Guide

A document that takes a new hire from day zero to their first merged PR. This is not HR onboarding. This is engineering onboarding: how to set up the development environment, how to run the tests, where to find the relevant repos, and who to ask about what.

The best onboarding guides are maintained by the most recent person who onboarded. They know what was confusing, what was missing, and what was outdated. Make it a rule: every new hire updates the onboarding guide in their first week.

Document 5: Team Working Agreement

A short document that describes how your team works together. This is especially critical for remote teams where norms cannot develop organically through physical proximity.

Include:

Review this document every quarter in a retrospective. It should evolve as your team evolves.

How to Keep Documentation Alive

The biggest documentation challenge is not writing it. It is keeping it current. Outdated documentation is worse than no documentation because it actively misleads. Here are the practices that keep docs alive:

Put Docs Near the Code

Documentation in the repository gets updated alongside code changes because it is in the same PR. Documentation in Confluence gets forgotten because it is in a separate tool, separate context, separate workflow. ADRs, API docs, and runbooks should live in the repo.

Automate What You Can

API documentation should be generated from code (OpenAPI/Swagger). Dependency diagrams should be generated from actual dependencies. Configuration documentation should be generated from the config schema. Every manually-maintained document is a document that will eventually lie.

Build Documentation Into Your Definition of Done

A feature is not done until the relevant documentation is updated. This is not optional. If the PR changes the API, the API docs are updated in the same PR. If the PR introduces a new service, the architecture overview is updated. Make it a code review checklist item.

Schedule Documentation Reviews

Once a quarter, assign each document to a team member for review. They read it, verify it is still accurate, and update anything that has drifted. This takes 2-3 hours per quarter across the team and prevents the slow decay that makes wikis useless.

What Not to Document

Documentation has a cost. Every document you create needs to be maintained. Be selective:

The goal of documentation is not comprehensive coverage. It is answering the questions that people actually ask repeatedly. Track what new hires ask in their first month. Track what comes up during incidents. Track what gets asked in Slack. Those questions are your documentation roadmap.

Building the Documentation Habit

You cannot build a documentation culture through mandates. You build it by modeling the behavior. When you write a clear ADR for your own decisions, your team sees the standard. When you reference a runbook during an incident instead of relying on memory, they see the value. When you link to the architecture overview in a design discussion, they see documentation as a living tool, not a dusty archive.

Start with one document. Write the best ADR you have ever seen. Share it with your team. Then write another. Within a quarter, your team will start writing their own, because they have seen how useful documentation is when it is done right.

Document Like a Senior Tech Lead

First Lead covers documentation practices, knowledge management, and team scaling as part of its Technical Leadership pillar. Built from 22 years of maintaining systems that outlive their creators.

Enroll in First Lead