What is Code Review?

Code review is the practise of systematically examining source code changes through peer review before they are integrated into main codebases. Code reviews improve code quality, catch bugs early, distribute knowledge across teams, and maintain consistent code standards.

Code Review Benefits

Bug Detection

Reviewers frequently catch bugs that automated testing misses:

  • Logic errors that tests do not exercise
  • Edge cases not covered by automated tests
  • Security vulnerabilities requiring domain knowledge to identify
  • Performance issues not visible in unit tests

Early bug detection through code review is significantly cheaper than fixing bugs in production.

Knowledge Sharing

Code review exposes team members to diverse approaches and patterns:

  • Junior developers learn from reviewing senior developer code
  • Senior developers gain perspective from junior developers
  • Knowledge about codebase spreads throughout teams
  • Institutional knowledge is preserved rather than concentrated with individuals

Consistency and Standards

Code reviews enforce consistent style and architecture:

  • Naming conventions applied consistently
  • Design patterns applied uniformly
  • Technical standards maintained throughout codebase
  • Prevents inconsistent approaches creating maintenance challenges

Mentoring

Code review provides feedback improving developer skills:

  • Comments explain why changes are problematic
  • Suggestions demonstrate better approaches
  • Learning occurs in the context of actual code

Bus Factor Reduction

When critical code knowledge is limited to individuals, that person's absence becomes catastrophic. Code review distributes knowledge across teams.

Code Review Process

Pull Request Creation

Developers create pull requests (or merge requests) describing proposed changes:

  • Clear description of what changed and why
  • Link to relevant issues or requirements
  • Labelling for easy categorisation
  • Review assignment to relevant team members

Code Review Execution

Reviewers examine proposed changes:

  • Functionality - Does the code implement intended behaviour correctly?
  • Testing - Are changes adequately tested?
  • Code quality - Is code readable and maintainable?
  • Performance - Do changes maintain acceptable performance?
  • Security - Are there security concerns?
  • Architecture - Do changes align with system architecture?

Feedback Provision

Reviewers provide constructive feedback:

  • Critical issues - Functional problems or security concerns
  • Suggestions - Improvements to code quality
  • Questions - Clarification about implementation decisions
  • Praise - Recognition of well-implemented solutions

Iteration

Authors address feedback:

  • Fix critical issues
  • Consider suggestions, accepting or discussing rationale
  • Respond to questions with clarification
  • Push updated code for re-review

Approval and Merge

After satisfactory review, authorised reviewers approve changes:

  • Changes merge to main branch
  • Automated systems verify build and test success
  • Code enters deployment pipeline

Code Review Tools

GitHub

Built-in pull request review system with inline commenting, approval workflows, and automated checks.

GitLab

Comprehensive merge request review system with advanced approval and pipeline integration.

Gerrit

Code review platform emphasising quality and incremental improvement.

Crucible/Fisheye

Enterprise code review platform with advanced filtering and reporting.

Code Review Best Practices

Small, Focused Changes

Pull requests should address single, logical changes. Large pull requests are difficult to review thoroughly. Reviewers should reject overly large changes requesting subdivision.

Descriptive Pull Request Descriptions

Clear descriptions help reviewers understand context:

  • What problem does this solve?
  • How does it solve the problem?
  • What alternatives were considered?
  • Are there known limitations?

Respect and Constructiveness

Code review comments should be professional and constructive:

  • Focus on code, not developers
  • Assume good intent
  • Provide suggestions rather than demands
  • Acknowledge reviewer fallibility

Time Requirements

Code reviews require time. Organisation must budget review time rather than treating it as extra work:

  • Reviewers should prioritise code review
  • Review turnaround should be hours, not days
  • Developers should not be blocked waiting for reviews

Automation

Automated checks should handle routine concerns:

  • Linting - Code style consistency
  • Testing - Automated test execution
  • Security scanning - Vulnerability detection
  • Performance benchmarking - Performance regression detection

This enables human review to focus on logic and architecture rather than style.

PixelForce Code Review Practices

PixelForce employs code review practices ensuring code quality across all projects. Reviews focus on functionality, security, and maintainability. New team members participate in reviews to accelerate learning.

Code Review Challenges

Analysis Paralysis

Overly thorough code reviews delay feature delivery. Reviews should focus on critical concerns rather than perfect code.

Reviewer Availability

Code waiting for review blocks developers. Organisations must ensure adequate reviewer availability.

Unequal Reviews

Senior developers may receive lighter review scrutiny. All code benefits from review regardless of author seniority.

Large Pull Requests

Developers sometimes create large pull requests that are difficult to review thoroughly. Organisations must enforce size limits.

Code Review Metrics

Review Turnaround Time

Time from pull request creation to approval. Faster turnaround reduces development delays.

Review Comments Per Change

Ratio of review comments to lines changed. Extremely low ratios suggest cursory reviews. Extremely high ratios may indicate unreasonable standards.

Post-Review Defects

Defects discovered after review indicates review quality is insufficient. High post-review defect rates trigger review process improvements.

Code review represents an essential quality assurance mechanism and knowledge-sharing opportunity that improves code quality, develops team capabilities, and prevents defects reaching production.