Skip to content

Software Documentation Checklist: 8 Documents to Get Before Handover

A software documentation checklist for handover: the 8 documents your project needs so a new developer can take over without starting from scratch.

By

Freelance full-stack developer

Published
Reading time
8 min
In this post8

A good software documentation checklist for handover is short: eight documents that let a new developer run, change and deploy your system without calling the person who built it. You don't need a 100-page manual. You need a README, an architecture overview, a decision log, a runbook, an accounts register, an integrations map, an admin guide and an honest list of known issues.

Full disclosure: I take over and maintain systems other developers built. Treat this as the list I'd tell you to demand from any developer, me included.

The short answer: 8 documents and what each one prevents

#DocumentAnswersMissing it means
1READMEHow do I get this running?Days lost on setup
2Architecture overviewWhat are the parts, and how do they connect?Every change is a guess
3Decision logWhy was it built this way?Old mistakes kept, good decisions undone
4RunbookHow is code deployed, rolled back and restored?Outages last longer
5Accounts registerWhich accounts exist, and who owns and pays for them?Lockout when a developer leaves
6Integrations mapWhich other systems send or receive data?Silent failures, GDPR blind spots
7Admin guideHow does my team handle everyday tasks?Paying a developer for routine clicks
8Known issues and tech debtWhat's unfinished, fragile or postponed?Surprise costs

Documentation isn't a final phase. It should grow through every stage of the software development process, or it never gets written. My rule of thumb: a task isn't done until the docs it touches are updated.

For the next developer: README, architecture and decisions

You don't need to read these line by line. You do need to confirm they exist and match the code running today.

Understanding the code

  • 1. README: The file at the root of the repository that explains what the project is, what it needs, how to install it locally and how to run the tests. GitHub's guide to READMEs says the same: what the project does and how to get started. Check: could a developer new to the code get it running on day one?
  • 2. Architecture overview: One or two pages plus a diagram of the main parts: frontend, backend, database, queues and external services. The C4 model is a widely used way to draw this. Add the data model and key business rules, such as how prices are calculated. Check: can you point at the diagram and say where customer data lives?
  • 3. Decision log: Short notes on the big choices: why this framework, why this payment provider, why a feature was rebuilt. The usual format is the Architecture Decision Record, which Michael Nygard described in 2011: context, decision and consequences in a short text file. Check: can a new developer see why something odd was done before they remove it?

The decision log is usually the one that's missing. Without it, the next developer guesses. A requirements specification from the start of the project helps, but it describes what was supposed to be built. Handover documentation describes what was actually built.

For keeping it running: runbook, accounts and integrations

These three matter when something breaks on a Friday afternoon, and on the day your developer moves on.

Operations, access and integrations

  • 4. Runbook: How code gets from the repository to production, which environments exist (such as staging and production), which background jobs run, where the logs are and how to roll back a bad release. Include where backups live and how to restore them. Check: when was a restore last tested?
  • 5. Accounts register: Every account the system depends on: code hosting, servers, domain and DNS, email, payments, monitoring and app stores. For each one, list who owns it, who pays, who has access and what renews when. Passwords belong in a password manager your company owns, not in the document. Check: is every account in the company's name, not the developer's?
  • 6. Integrations map: Every external system that sends or receives data, such as accounting, payments or a CRM. For each, note what's sent, how failures are detected and who the vendor contact is. Mark which services process personal data. Under GDPR those are processors or sub-processors, and the EDPB's guide on controllers and processors notes that a sub-processor needs written authorization. Check: do you know what happens if an integration fails overnight?

The accounts register decides whether switching developers is painless or expensive. I've covered the handover itself step by step in my guide to switching developers mid-project.

For your team and budget: admin guide and known issues

The last two are about how often you have to call a developer, and how many surprises are waiting.

Your team and your budget

  • 7. Admin guide: A short guide for your staff on what they can do themselves: add users, change prices and copy, export data, issue a refund. Short screen recordings often beat written steps. Check: are you paying a developer for tasks a colleague should handle?
  • 8. Known issues and tech debt: An honest list of unfinished work, temporary workarounds, known bugs, packages nearing end of support and deliberately postponed tasks. Add a changelog of what shipped when. Check: can you see the most important cleanup for the next six months without asking?

Developers rarely enjoy writing item 8 because it exposes weak spots. That's why you want it: technical debt gets more expensive the longer it stays hidden, and a written list turns it into something you can plan and budget for.

How to test the docs without reading code

You can judge the docs without being technical. Three checks cover most of it:

  1. Check where they live. Are the docs plain text files (usually Markdown) in your repository, or in your developer's own tools? Only the first stays with you when the contract ends.
  2. Check the dates. If the README hasn't changed in two years and the code changed last week, it's probably wrong.
  3. Run a stranger test. Pay another developer for a few hours to set up the project and make a small change using only the docs. Wherever they get stuck, documentation is missing.

Written docs matter even more with a remote contractor in another time zone, because they replace the quick question across the desk. The stranger test also fits into a broader review of the signs of a healthy codebase.

When you don't need all eight

A small marketing site or a prototype you're still testing doesn't need a decision log or an admin guide. A README and an accounts register are enough. Add the rest once the system becomes business-critical.

Don't pay for a long Word document written in the last week of a project, either. It goes stale with the first change. Short docs next to the code beat a long one in a shared drive.

If you're happy with your current developer, don't switch just to get documentation. Send them this list and ask for the missing pieces as part of the regular work. It's usually a matter of hours or a few days, not a new project.

Next steps

  1. Go through the table and mark which of the eight documents you can find today.
  2. Start with the accounts register. You can draft most of it yourself from invoices.
  3. Ask your developer for the rest in order of risk, and make documentation part of every task from now on.

If nobody maintains your system today, or the documentation left with a previous developer, see how I handle maintenance and ongoing development. You own the code from day one, and you work directly with the developer who writes it.

Frequently asked questions

Who should pay for software documentation?

You do, but it should be part of the original price, not an extra invoice at the end. Documentation written as the work happens is quick because the details are fresh. Having a new developer reconstruct it later usually takes far longer, and you still pay for it.

Should documentation be written into the contract?

Yes. List the documents as deliverables, for example the eight in this checklist, and state that they're kept up to date and handed over with the code. Without that, they're hard to demand later. Contract law differs between countries, so this isn't legal advice: have a lawyer review the agreement if a lot is at stake.

Isn't clean code self-documenting?

Only partly. Readable code and automated tests show what the system does. But code can't tell you why a choice was made, which accounts exist, who pays for hosting or how to restore a backup. That has to be written down somewhere you and the next developer can find it.

Can documentation live in Notion or Confluence instead?

For some of it, yes. The admin guide and accounts register often work well in a shared workspace your team already uses. Developer docs such as the README, architecture notes and decision log belong in the repository, so they change together with the code. Whatever tool you pick, make sure the workspace is owned by your company.