Automate the mechanical rules

Formatting, import ordering, unused variables, and common error patterns should be enforced by a formatter and a linter running automatically. No human should ever comment on them.

This removes the single largest source of review friction, and it ends preference debates by making the tool's output the answer regardless of anyone's opinion.

Adopt rather than invent

Take a widely used configuration for your language and change as little as possible. The specific choices matter far less than having one, and an off-the-shelf standard is one that new joiners may already know.

Time spent designing a bespoke house style is time not spent on anything that benefits users.

Document only what tools cannot enforce

A short document covering genuine judgement calls: how errors are handled, how modules are structured, when to add an abstraction, what belongs in a test.

Keep it brief. A fifty-page standard is not read, and its length signals that it is a reference rather than a shared understanding.

Apply changes wholesale

Introducing a formatter gradually leaves the codebase in two styles indefinitely and makes every diff noisy. Apply it to everything in one commit, record that commit so it can be excluded from blame, and move on.

The same holds for a lint rule: fix all existing violations or explicitly grandfather them, but do not leave a permanently failing check.

Decide by consent, then commit

Standards imposed without discussion get quietly ignored. Standards debated indefinitely never take effect. Discuss briefly, decide, write down the reasoning, and treat it as settled until someone presents new information.

Record which decisions were close calls, so revisiting them later is a short conversation rather than a rerun.

Review the standard occasionally

Rules accumulate and some stop making sense as the language, the tooling, or the product changes. An annual pass removing rules that no longer earn their place keeps the standard credible.

Written by the Global IT Solutions engineering team. Working through this decision right now?

Start a conversation