Writing Documentation Developers Will Actually Read
Documentation is unpopular to write and universally missed when absent, which produces a predictable cycle: a burst of effort during onboarding season, gradual drift into inaccuracy, and eventual abandonment in favour of asking a colleague. The failure is structural rather than motivational.
Four kinds, serving four needs
Tutorials teach a newcomer by doing. How-to guides solve one specific problem for someone who already understands the system. Reference material answers precise questions and should be exhaustive and boring. Explanations describe why decisions were made. Mixing them is the commonest mistake — a reference page interrupted by narrative helps nobody, and a tutorial with exhaustive parameter tables loses its reader. Documentation practice discussed at the developer resources on this site follows a similar division, and it holds up well across languages and team sizes.
- A README that gets a new developer running in under fifteen minutes
- Decision records: the choice, the alternatives, the date, the reasoning
- Runbooks for anything that can page someone at night
- Generated reference from the code, so it cannot drift silently
Location determines survival
Documentation kept beside the code it describes is updated in the same pull request as the change. Documentation in a separate wiki is updated when someone remembers, which is never. This single choice predicts accuracy better than any writing guideline.
Decision records are the highest-value artefact
A short note recording why an approach was chosen — and what was rejected — saves the next person from either repeating a failed experiment or removing something load-bearing. Half a page, written when the decision is fresh, is worth more than a chapter written a year later from memory.
Test it on someone new
Hand your setup instructions to the next joiner, watch silently, and record every point where they hesitate. Those hesitations are the document's real defects, and no amount of careful writing by someone who already knows the system will find them.