IAnswerable

Code Reviews That Don't Waste Everyone's Time

19 Mar 2026

Most code review time goes to things a linter should catch and nobody says the thing that actually matters: “I don’t understand why this approach was chosen.” Fix the ratio, not the process.

Automate the stuff that isn’t a judgment call

Formatting, import order, unused variables, line length — none of that belongs in a human review. If a reviewer is typing “missing semicolon” as a PR comment, that’s a CI failure you haven’t configured yet.

# runs on every push, blocks merge on failure
npx eslint . --max-warnings 0
npx prettier --check .

Same for type errors, basic security lint (npm audit, gosec, whatever your language has), and test coverage thresholds if you use them. None of it needs a person. Every minute a reviewer spends on it is a minute not spent on the one thing a linter can’t do: judging whether the change is right.

What to actually comment on

What to let go

If you comment on everything, the important comment drowns in the pile, and the author starts treating every comment as equally optional.

The timing problem

A review that sits for two days kills momentum harder than a bad review. The author context-switches, forgets the decisions they made, and the eventual fix takes longer than the original PR. Set an actual team norm: reviews get a first pass within a few hours, not “whenever I get to it.” If your team is small, a Slack ping when a PR is ready beats waiting for someone to check the queue.

Size matters more than most review checklists

A 40-line PR gets a real review. A 900-line PR gets a rubber stamp, because nobody has the attention span to actually trace 900 lines of logic changes in one sitting, and everyone knows it. If PRs are consistently huge, that’s not a review problem, it’s a “the work wasn’t broken down” problem — and no review checklist fixes a PR that should have been three PRs.

The one-line test for whether review is working

Ask: in the last month, did a review catch a real bug before it shipped? If the honest answer is “no, it just catches style stuff,” your review process is theater. Redirect the automated checks to catch the style stuff, and free the humans to actually read the logic.