Nobody wrote docs because nobody read them
The documentation chicken-and-egg problem is one of the most persistent failure modes in software organizations.
- The team has working knowledge of its systems
- Onboarding includes a README or equivalent starting point
- Team acknowledges that tribal knowledge is a risk
- Some informal knowledge sharing exists (Slack threads, meeting notes)
- Documentation audit showing outdated or missing docs for key systems
- Onboarding feedback citing reliance on "ask someone" for critical information
What It Is
The documentation chicken-and-egg problem is one of the most persistent failure modes in software organizations. Nobody reads the docs because the docs are outdated and unreliable. Nobody writes the docs because nobody reads them and the effort feels wasted. Both sides of the cycle are individually rational and collectively catastrophic. The result is an organization where the official documentation exists as a facade — it's there, it covers the right topics, but it doesn't reflect reality and nobody trusts it.
This isn't a motivation problem or a culture problem in the usual sense. It's an incentive structure problem. The person who writes documentation pays a real cost (time, effort) and receives almost no benefit — the documentation goes unread, the writer receives no recognition, and the time could have been spent on features that are visibly valued. The person who reads documentation pays a lower cost (a few minutes of search) but receives an uncertain benefit — maybe the doc is accurate, maybe it's two years out of date and will send them in the wrong direction. Rational actors on both sides skip documentation entirely and go straight to asking a colleague.
The consequence for AI agents is severe. An agent that reads your documentation and acts on it will produce results calibrated to whenever the docs were last updated. In a typical L1 organization, that might be 18 months ago. The agent isn't wrong — it followed the documented procedure. The procedure is wrong. This is worse than having no docs at all: it creates confident, plausible-looking failures that are hard to diagnose.
At L1, organizations typically have documentation systems (a wiki, a Confluence space, a docs/ folder in the repo) but the content inside them has rotted. The system exists because someone thought it was a good idea years ago. The content was never maintained because the incentive structure never changed. The cycle continues until something external breaks it.
Why It Matters
- Confident wrong answers are worse than no answers - stale documentation gives agents and new hires a false sense of having the right procedure, leading to failures that are harder to diagnose than "I don't know how to do this"
- The cycle is self-reinforcing - every time someone consults the docs and finds them wrong, they trust them slightly less and are slightly less likely to write documentation themselves, accelerating the decay
- Agents amplify the problem - a human who finds stale docs asks a colleague; an agent that finds stale docs executes the stale procedure at machine speed and scale
- Search engines and LLMs learn from your docs - if your internal docs are indexed, stale procedures will be surfaced confidently by AI assistants who don't know the docs are wrong
- The fix is organizational, not individual - no amount of individual motivation overcomes a broken incentive structure; the cycle breaks only when reading and writing docs both become reliably valuable
Getting Started
- Audit documentation accuracy before investing in coverage - pick 10 random docs and verify whether they are accurate today. If fewer than 7 of 10 are accurate, coverage is not your problem — accuracy is. Fix accuracy before adding more content.
- Add a "last verified" date to every doc - make staleness visible. A doc with a "last verified: 2022-03-15" header signals its own unreliability. This creates demand-side pressure: engineers stop trusting old docs, which creates supply-side pressure to keep docs current.
- Require docs updates as part of every PR that changes behavior - add "docs updated?" to your PR template. Make it a non-optional checklist item, not a good-faith question. Code that changes behavior without updating the corresponding documentation fails review.
- Create a "docs owner" rotation, not a permanent owner - permanent owners create single points of failure and rarely maintain docs. Rotating ownership (one engineer owns the docs for one area for one quarter) distributes the maintenance cost and ensures more engineers have a stake in documentation quality.
- Measure documentation accuracy, not coverage - count the percentage of docs that are accurate today, not the number of docs that exist. Coverage metrics reward writing docs nobody reads; accuracy metrics reward maintaining docs that actually help.
- Make docs easy to find before making them comprehensive - the most common reason docs go unread is not their quality but their discoverability. Ensure every repository has a README that links to relevant docs, and every runbook is linked from the system it describes.
The fastest way to break the cycle is to make one area of documentation so reliably accurate that engineers stop asking colleagues and start checking the docs first. Pick one high-traffic area (deployment, local setup, or the most common support question), make it accurate, and defend its accuracy for one quarter. The behavior change in that area demonstrates that docs can work — and creates appetite to expand the approach.
Common Pitfalls
Starting with a documentation sprint that doesn't change the process. A sprint that creates 50 new docs without changing the PR process, ownership model, or accuracy metrics will decay in 6 months. The sprint is wasted unless the underlying incentive structure changes alongside the content.
Using a wiki as the primary home for procedural docs. Wikis decouple documentation from code, making it easy for docs to drift. Runbooks and procedural docs belong in the repository they describe, where they're visible in PRs, can be linted, and are co-located with the code that would invalidate them.
Confusing documentation quantity with documentation quality. Organizations that measure lines of documentation or number of pages reward bloat. A 200-page architecture guide that nobody reads is worse than a 10-page guide that every engineer has memorized. Prefer concise, accurate, and frequently consulted over comprehensive, stale, and ignored.
Expecting voluntary compliance. "Please update the docs when you change behavior" is an ineffective norm without enforcement. Documentation updates need to be structurally required — in PR templates, in definition of done, in CI checks that verify docs exist for certain file types. Voluntary compliance produces 30% participation at best.
Not rewarding documentation work in performance reviews. If engineers are evaluated on features shipped and bugs closed, documentation work is invisible overhead. Engineering managers need to explicitly recognize documentation contributions in review cycles — not just for culture reasons, but because people respond to what is measured and rewarded.
How Different Roles See It
Bob's team has a Confluence space with hundreds of pages. He knows most of them are outdated because engineers complain when they follow the docs and things break. He also knows his team spends significant time answering the same questions repeatedly in Slack — questions that should be answerable from documentation. He wants to fix this but has tried documentation sprints before and seen the improvement decay within months.
What Bob should do: Bob should run the accuracy audit first — pick 10 docs at random, verify them, and report the number. If the score is below 70%, Bob has a structural problem that a sprint won't fix. He needs to change the PR process (docs required for behavior changes), create ownership (quarterly rotation for high-traffic docs), and measure accuracy monthly. Bob should also identify the top 5 questions asked repeatedly in Slack and make those the first docs to fix. When those 5 docs become reliably accurate and engineers actually reference them, Bob has proof of concept and organizational momentum to expand the approach.
Sarah tracks time lost to knowledge gaps — time spent asking colleagues questions that should be answerable from docs, time lost to following stale procedures, time spent by seniors answering repeated questions. She suspects this number is large but has never measured it directly. Her attempts to get engineering teams to maintain documentation have stalled because engineers say they don't have time.
What Sarah should do: Sarah should quantify the cost of documentation debt in engineering time. Survey engineers: how many hours per week do you spend answering questions that should be in the docs? How many hours per week do you spend asking questions that should be in the docs? Multiply by salary cost. The number will shock people. Present it to Bob and to engineering team leads as "this is what we're spending to maintain the current state of no documentation." The investment to fix it is almost always smaller than the ongoing cost of not fixing it. This business case changes the conversation from "we don't have time to document" to "we can't afford not to."
Victor has been trying to use AI agents to answer questions about the codebase. The agents keep producing wrong answers — answers that are internally consistent and confident but contradict current reality. Victor traces the problem: the agents are reading the docs, the docs are stale, the agents trust the docs. Victor is spending more time correcting agent hallucinations than he would have spent just answering the questions himself.
What Victor should do: Victor should treat documentation accuracy as a prerequisite for agent-assisted development, not an optional improvement. He should add a documentation accuracy check to the agent workflow: before acting on documented procedures, agents should verify key facts against the codebase (does the file they're told to modify exist? does the command they're told to run produce the expected output?). This won't catch everything, but it reduces confident wrong answers. More importantly, Victor should surface every case where an agent fails because of stale docs as a specific, traceable documentation bug. A list of 20 "agent failures caused by stale documentation" is a powerful forcing function for getting documentation accuracy treated as an engineering priority.
Further Reading
From the Field
Recent releases, projects, and discussions relevant to this maturity level.
Where does your team actually sit on this?
This guide describes one level of one area. Run the assessment to place your team across all 16 areas, see which gates you have passed, and get a report you can take to your stakeholders.
Knowledge Management