Format-Documentation

How I Write Internal Docs That Actually Help

Good documentation is like good code: it works, is readable, and rarely requires a support call to understand. Below is a deeper dive into my approach, with concrete examples and best practices you can apply right away.


1. Start with Empathy: Think Like Support

  • Identify critical moments: Ask yourself, “What information would I need if I wake up at 2 AM to fix this?” For example, list quick recovery commands, log locations, or escalation contacts.
  • Map out user journeys: Sketch the typical tasks (e.g., onboarding a server, troubleshooting a failing job) and note pain points. Label each step with its purpose and expected outcome.
  1. Prerequisites: Verify SSH key, network access, required permissions.
  2. OS Setup: Install updates ($1), configure timezone.
  3. Dependencies: pip install -r requirements.txt, verify database connectivity.
  4. Service Deployment: Pull from Git, set up systemd service, systemctl enable --now myservice.
  5. Validation: Check logs (journalctl -u myservice -f), run smoke tests.
  6. Troubleshooting: Enable debug flag (--debug), check port conflicts (ss -tulpn).

2. Use Plain, Unambiguous Language

  • Short sentences: Keep lines under 80 characters when possible; long paragraphs discourage reading.
  • Define jargon: If you must use acronyms (CI/CD, SSL), include a glossary or tooltip the first time.
  • Active voice: Write commands as direct actions: "Run npm install" instead of "npm install should be run."

3. Structure for Scannability

  • Headings & subheadings: Organize content hierarchically (##, ###, ####).
  • Bullet points & numbered lists: Use numbered steps for sequences; bullets for options or considerations.
  • Code blocks:
    • Consistent styling: Adopt a style guide (Markdown lint rules, naming conventions for scripts and services).

4. Integrate Visuals Judiciously

  • Screenshots: Only for UI tasks or when output is non-obvious. Crop to show only relevant parts.
  • Diagrams: Use simple flowcharts (e.g., service dependencies, data flow) created in lightweight tools like Excalidraw.
  • Annotations: Label key areas of a screenshot instead of full-page captures.

5. Add Context and Links

  • Link to related docs: If you reference an SLA policy or architecture diagram, hyperlink to the source.
  • Cross-reference: Use internal anchors so readers can jump from troubleshooting tips back to setup instructions.
  • Include purpose statements: At the top of each doc, add a "Why this exists" section explaining its scope and when to use it.

6. Plan for Maintenance

  • Versioning: Store docs alongside code in the repo or use a versioned wiki (e.g., Confluence with page history).
  • Review cadence: Schedule quarterly reviews or tie updates to code releases via a changelog entry.
  • Ownership & feedback: Assign a doc owner and add a feedback link (email, Slack, or GitHub issue template) at the bottom.

Documentation isn’t just a technical chore—it’s a support tool that fosters autonomy, reduces on-call stress, and preserves institutional knowledge. By writing with empathy, clarity, and a structured format, you empower teammates to solve problems confidently and quickly.

Leave a Comment