Most teams do code review. Far fewer get the full value from it. Done well, review catches defects early, spreads knowledge across the team and keeps the codebase consistent. Done badly, it delays releases and turns into arguments about formatting.
Keep changes small
The single biggest improvement most teams can make is smaller pull requests. A change of a few hundred lines can be reviewed properly in one sitting; a change of a few thousand gets skimmed. Break large features into a series of safe, incremental steps, using feature flags where needed.
Automate the obvious
Formatting, linting, type checks, tests and security scanning should run automatically before a human looks at the change. Reviewers’ attention is too valuable to spend on missing semicolons.
What reviewers should look for
- Correctness: does it do what the ticket asks, including edge cases and error handling?
- Design: does it fit the existing architecture, or introduce a new pattern without reason?
- Readability: will someone understand this in six months?
- Tests: do they cover the behaviour that matters, and would they fail if the code broke?
- Security and data: input validation, permissions and handling of personal data.
How to write good review comments
- Explain the why, not just the what: “This query runs once per row, which will be slow for large accounts” beats “fix this”.
- Separate must-fix issues from suggestions, for example with a “nit:” prefix for minor points.
- Ask questions when unsure rather than assuming a mistake.
- Recognise good work. A short “nice approach” encourages the habits you want.
Review the code, not the person. The goal is a better product, not a winner.
Keep reviews flowing
Agree on a response time, such as within one working day, and make reviewing part of everyone’s daily routine rather than an interruption. Track how long changes wait for review; if the number grows, changes are too large or reviewers too few.
Finally, rotate reviewers. When everyone reviews code from across the system, knowledge spreads and no single person becomes a bottleneck.