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.
- Prerequisites: Verify SSH key, network access, required permissions.
- OS Setup: Install updates ($1), configure timezone.
- Dependencies:
pip install -r requirements.txt
, verify database connectivity. - Service Deployment: Pull from Git, set up systemd service,
systemctl enable --now myservice
. - Validation: Check logs (
journalctl -u myservice -f
), run smoke tests. - 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.