Blog

Decisions you can still understand in two years

Architecture Decision Records are the cheapest tool against systems nobody can explain any more.

Every system older than a year has places where a new team member asks: “why is this like this?” And the honest answer is too often: “the only person who knows has left.” The remedy costs almost nothing: document architecture decisions at the moment they are made, with the context that forced them. Not as prose for posterity, but as a short, dated note with three things in it: what was decided, which alternatives were on the table, what tipped it.

An ADR is a page, not a document

An Architecture Decision Record records what was decided, why, and what you accept in exchange. It has four sections and fits on one screen:

  • Context – what was the situation? What constraints were there?
  • Decision – what are we doing?
  • Alternatives – what did we reject, and why?
  • Consequences – what becomes easier, what becomes harder?

It lives in the repository, next to the code it explains. Not in the wiki, not in a ticket, not in a Slack message.

Why this beats any documentation

In practice the distinction is simple. Documentation describes how a system is. It goes out of date the moment the system changes. An ADR describes why it became that way. That never goes out of date — even when the decision is later reversed, the record stays true. You add a new one that references the old.

A system without a decision history is like a contract without a date. You can read it, but you cannot place it.

How we handle it day to day

  • Every decision that is hard to reverse gets an ADR. Database choice, module boundaries, auth model: yes. Button colour: no.
  • The ADR is written before implementation and reviewed in the same pull request.
  • Numbered, chronological, never deleted. A record is superseded by a new one, not by editing.

The cost: twenty minutes per decision. The return: a team that after the third round of staff changes still knows why the system looks the way it does.

A conversation, not a newsletter

Let's talk about your system

If this article describes something you recognise, a conversation is the shortest route to an answer.

Let's talk