Be honest with yourself. When did you last write a README before someone begged you for one? When did you last update the CHANGELOG without a release script forcing your hand?
For most of us, documentation is the vegetable on the plate. We know it is good for us. We eat it last, reluctantly, and only if someone is watching. And the reason is not laziness - it is that documentation has always had a brutal payoff curve: hours of your time, zero visible reward for you, and all the benefit landing on some future stranger.
Here is the thing, though. That “future stranger” is usually you in six months, and the bill for skipping the work is enormous. The good news: for the first time, the boring part of documentation is nearly free. Let’s talk about where AI genuinely helps - and the one place it absolutely does not.
The chore nobody wants, the bill everybody pays
Skipping docs never felt expensive, because the cost is invisible and deferred. But it is real, and it is big.
- Poor documentation can cost a mid-sized engineering team $500K–$2M a year in lost productivity, rework, and delays.
- Senior engineers burn 20–30% of their week answering repeat questions and re-explaining systems - roughly a day a week not spent shipping.
- Developers lose up to 25% of their time just hunting for information that should have been written down.
- Onboarding a new teammate drags sprint velocity down 25–40% while they ramp.
None of that shows up in a standup. It leaks out one “quick question” at a time. Documentation is the classic tragedy of the commons: individually irrational to write, collectively expensive to skip.
What AI is genuinely good at here
The reason AI fits documentation so well is that most docs are restating what the code already says - and that is exactly the kind of mechanical, low-judgment work models excel at. McKinsey pegs the time savings at roughly half, and Google’s DORA research found a 25% jump in AI adoption correlated with a 7.5% improvement in documentation quality - the single biggest workflow gain they measured.
Hand these to the machine without guilt:
- READMEs - project overview, setup steps, scripts, and structure, generated from the actual codebase.
- CHANGELOGs and release notes - derived from git history and conventional commits, categorized into features / fixes / breaking changes.
- API docs and JSDoc - signatures, params, return types, and examples pulled straight from the source.
- PR descriptions and commit messages - a summary of the diff, so reviewers know what they are looking at.
- Onboarding guides - “how this repo fits together” walkthroughs that cut ramp-up time (complete, current docs cut onboarding time by up to 40%).
Show me, don’t tell me
Take the CHANGELOG - the doc everyone forgets until release day. If your commits follow a convention:
feat(auth): add passwordless magic-link login
fix(cart): prevent negative totals on stacked discounts
feat(api)!: drop the deprecated /v1/orders endpoint
…an agent can turn that history into release notes in seconds - grouped, ordered, and with the breaking change flagged loudly:
## v2.4.0
### ⚠ Breaking changes
- **api:** removed the deprecated `/v1/orders` endpoint — migrate to `/v2/orders`
### Features
- **auth:** passwordless magic-link login
Or the humble JSDoc block. You write the function; the model drafts the contract around it:
/**
* Price a cart, applying per-item discounts before tax.
* @param {CartItem[]} items - line items to price
* @param {{ taxRate: number }} opts - tax configuration
* @returns {number} total, rounded to 2 decimals, never negative
*/
function totalPrice(items, opts) {
/* ... */
}
That is minutes of tedium collapsed into seconds - and you still get to read it and fix what is wrong. Which brings us to the part the hype conveniently skips.
The one thing AI cannot document
AI is brilliant at the what and the how. It is helpless at the why.
A model can describe that a function rounds to two decimals. It cannot tell the next developer that you round this way because a payment provider once rejected fractional cents and cost the company a weekend of incident response. It can list your architecture’s components. It cannot explain the three approaches you rejected, the constraint that forced your hand, or the trade-off you made with eyes open.
That knowledge does not live in the code. It lives in the heads of the people who were in the room. And it is precisely the documentation that matters most - the stuff that stops the next person from confidently repeating a mistake you already paid for.
So the division of labor is clear:
- Let AI write the reference - what the system is and how to use it.
- You write the reasoning - why it is this way and what not to touch.
AI does not replace the documenter. It clears the boring 80% off your plate so you finally have time for the 20% only you can write.
Don’t trade “no docs” for “wrong docs”
One warning, because it is the failure mode I see coming. Generating docs is now so cheap that teams will flood their repos with them - and stale documentation is worse than none. A doc that confidently describes a system that no longer exists doesn’t inform the reader; it actively misleads them.
Auto-generation makes this danger bigger, not smaller. Guard against it:
- Generate close to the code - regenerate the README and API docs from the source, so they track reality instead of drifting from it.
- Put it in the pipeline - regenerate on release, fail the build when docs and code diverge.
- Date and scope the human notes - “as of v2.4, we chose X because Y” ages honestly; “the system works like this” rots silently.
Leave a better trail
Think of your codebase as a trail through the wilderness. For years, most of us hiked through and left almost no markers - too busy moving to stop and carve a sign. The people who came after us got lost in exactly the spots we already knew were treacherous.
AI just handed you a machine that paints trail markers in seconds. Let it. Mark the paths, the distances, the switchbacks - all the mechanical stuff. But remember: the machine only knows the trail you did walk. It cannot warn about the ravine you turned back from, or why. That sign - “don’t go this way, we tried, here’s what happened” - only you can carve.
Let the machine paint the markers. You save your energy for the warnings that keep the next hiker alive.