Happyness Mallya
Top navigation

Documentation as leverage

Undocumented decisions are bets that the original people will always be in the room. A practical case for decision logs, onboarding docs, and the file where I keep every reason we said no.

30 Apr 2026 · 8 min · Systems

When my team writes code, we treat the code as the easy part. The hard part — the part that compounds across years instead of weeks — is the written record of why the code looks like that.

I have been running Saby Infotech for almost three years now. We have shipped seventeen products in that time. The single biggest accelerator I can point to is not the stack, not the team, not even the clients. It is a small set of writing habits that we picked up early and never gave up. This essay is about those habits, what they cost, and why they pay for themselves so quickly that I now consider an undocumented project to be a kind of debt.

The asymmetry of documentation

Most of the cost of writing things down is felt by the person writing them down. Most of the benefit accrues to everyone else — your future self, your future hires, your future clients, even the auditor who arrives two years later to ask what on earth a particular feature does. The benefits are diffuse. The cost is concentrated. That asymmetry is why teams underinvest in documentation by default — there is no individual whose week gets better as a result.

The fix is not motivation. The fix is structure. We do not ask engineers to "remember to document." We have four documents that have to exist for a project to be considered shipped. Those documents are the deliverable.

The four documents

1. The decision log

Every architectural choice that lasts longer than the conversation it was made in goes into a markdown file in the repo, dated, with three short paragraphs: what we decided, why we decided it, and what we considered and rejected. That's it.

The decision log is the document I would save first in a fire. It is the single highest-leverage piece of writing on any project. Most engineers, in my experience, will redo a decision rather than read about why it was made the first time. The decision log breaks that loop.

A decision log is the antidote to the loudest, most patient engineer in the room becoming the de facto architect.

2. The onboarding doc

A new engineer should be able to get from clone to running tests in under an hour. This is a low bar that almost no codebase clears. We write down every step, including the embarrassing ones — yes, you do have to install that specific version of Postgres locally, here is the brew command, here is the workaround for that one Mac that has the M-chip problem.

The onboarding doc is also a kind of test: if you cannot write down how to get the project running, you do not actually know how the project runs. You have just memorised the path.

3. The "why we said no" file

This is the most unusual of the four, and the one clients react to with the most surprise. We keep a running list of every feature, dependency, integration, or refactor we considered and chose not to do — and one line on why. Six months later, when someone (sometimes the client, sometimes a new engineer) asks "have we thought about adding X?", we point them at the file. Most of the time we have. Most of the time the reason we did not is still valid.

The why-we-said-no file is what keeps a project's scope honest. It is also what keeps founder anxiety honest — every founder I know has a long list of features they "should be" building. The file is a kind of permission to not build them.

4. The customer-facing changelog

Every shipping product, regardless of how many users it has, gets a public changelog. Plain prose, no marketing voice, one entry per ship. Most clients are uncomfortable with this for two days, until the third client emails them to thank them for telling them what changed.

A changelog is a contract with users that says: this product is being looked after. That signal is more valuable to retention than almost any feature you could ship instead.

What documentation is not

It is not slides. It is not Notion gardens. It is not the wiki nobody reads. The four documents above share three properties: they live in the codebase, they are written in plain markdown, and they are short enough to be re-read in a single sitting. The moment documentation becomes a separate product with its own tooling and its own gardener, you have created a side project. The side project has the same survival rate as all side projects.

The compounding effect

The thing I did not anticipate when we started this habit, three years ago, is that it would change the kind of project we are able to take on.

When a new client engagement begins, the first thing I do is read every decision log from comparable projects in our archive. I usually re-use four or five decisions verbatim. Some of those decisions took weeks of argument to land on. The new project gets them in twenty minutes. That is the leverage.

We are not faster than other teams because we have a better stack. We are faster because we have already written down most of the answers.

What to do tomorrow

If you take only one thing from this essay, take this. Open a file called decisions.md in your current project. Date the top. Write down the three most important architectural decisions you have made this quarter, in three short paragraphs each — what, why, what we rejected. Commit it.

That file is now an asset on the project's balance sheet. Treat it like one.

Happyness

Dar es Salaam · April 2026