Skip to content
2 min read

Writing Before Coding

Evergreen

The thirty minutes spent writing down your approach saves days of rework. I have learned this the hard way, multiple times.

Why writing matters

When you write a design document, you are forced to think through:

  • Edge cases that are invisible when you are staring at a blank editor
  • Dependencies between systems that only surface when you draw the data flow
  • Trade-offs that you would otherwise discover three sprints later
  • Alternatives you would never consider if you jumped straight to code

The document is a side effect. The thinking is the product.

What a good design doc contains

I keep it simple. Three sections:

  1. Context — What problem are we solving and why now?
  2. Approach — How will we solve it? What are the trade-offs?
  3. Alternatives considered — What else did we think about and why did we reject it?

If you cannot fill these three sections, you do not understand the problem well enough to code the solution.

When to skip it

Not every change needs a design doc. Bug fixes, small features, configuration changes — just do them. The rule of thumb: if the change touches more than two systems, or if you would be uncomfortable reverting it at 2 AM, write it down first.

The meta-insight

Writing is thinking. Code is implementation. Confusing the two is how you end up with systems that nobody understands six months later — including the person who built them.