# Awesome Code Review

> A curated list of tools, articles, books, and any other resource related to code review

Code review is the systematic examination (sometimes referred to as peer review) of computer source code.

## Contents

- Awesome Code Review
- Contents
- Academic Papers
- Articles
- Books
- Talks and Podcasts
- Tools
- Contribute
- License

## Academic Papers

- An experiment to assess the cost-benefits of code inspections in large scale software development (Porter, Siy, Toman & Votta, 1997) Early paper that tested a range of then-current review techniques including multi-stage review and code-review-via-meeting that found you can get most of the benefit in an offline, single pass, with two reviewers.
- Anywhere, anytime code inspections: using the Web to remove inspection bottlenecks in large-scale software development (Perpich, Perry, Porter, Votta & Wade, 1997) One day in the far future the best way to review code will be on the world wide web.
- Characteristics of Useful Code Reviews: An Empirical Study at Microsoft (Bosu, Greiler, Bird, 2015) This paper reports the findings of a large scale qualitative and quantitative study focusing on understanding which code review comments are considered useful by developers.
- Code Reviewing in the Trenches: Understanding Challenges, Best Practices, and Tool Needs (MacLeod, Greiler, Storey, Bird, Czerwonka, 2018) A large scale study of over 900 Microsoft developers to understand their code review processes, their motivations to do code reviews, and which pitfalls and best practices they encounter.
- Design and Code Inspections to Reduce Errors in Program Development (Fagan, 2002) Using a more formal process, particularly with defined roles for each participant and drive a big increase in error detection during review.
- Helping Developers Help Themselves: Automatic Decomposition of Code Review Changes (Barnett et al. 2015) (summary on the morning paper) Research into automatically splitting big diffs into smaller diffs leading to better reviews.
- Modern Code Review: A Case Study at Google A study that shows how code reviews work at Google.
- Work Practices and Challenges in Pull-Based Development (Gousios et al. 2015) (summary on the morning paper) Field study of how GitHub pull requests are used in the wild.

## Articles

- 8 Tips for Great Code Reviews A few basic rules for a better code review process.
- A Better Code Review Decent set of patterns and anti-patterns for code reviews.
- A Zen Manifesto for Effective Code Reviews Practical tips for the submitter and the reviewer to make effective code reviews.
- Brian Guthrie’s Feature Branching Rant Twitter thread on the pros and cons of GitHub’s open source first model with regards to “in-company” code review practice.
- Building an Inclusive Code Review Culture Guidelines to help ensure a collaborative and learning culture
- Code Review: Create The Culture, Learn The Best Practices Code review tips and best practices from tech leaders.
- Code Review Etiquette A few tips helping with positive engagement on code review.
- Code Review Guidelines for Humans Some guidelines for giving and getting code reviews.
- Code Reviews: Just Do It Seminal post advocating for peer review of software back in 2006.
- Code Reviews at Google are lightweight and fast Details on how code review best practices and processes work at Google.
- Code Review Review is the Manager’s Job Why management should ensure code review is done and done well.
- Comments During Code Reviews Writing good comments during code reviews.
- Designing Awesome Code Reviews Principles for actively designing a code review process.
- Effective Code Reviews Without the Pain Another 2006 classic on how to effectively perform a code review.
- Feedback Ladders: How We Encode Code Reviews at Netlify Helpful framwork for reviewers to classify how actionable specific pieces of review feedback are.
- How Code Reviews work at Microsoft A in-depth analysis on how the code review process looks like at Microsoft.
- How I review code More personal advice on how to best review a pull request from an engineer at Tumblr.
- How to do a code review A thorough description of how Google engineers do code reviews, from the Google’s Engineering Practices documentation.
- How to Do Code Reviews Like a Human Techniques that treat the code review as not only a technical process but a social one as well.
- Modern Code Reviews Arguably belongs in academic paper, but it’s a website giving an overview of evidence on code review by facet/context. Links off to a bunch of papers.
- On Code Review Short article about tooling and personal elements of code review, from an ex-Facebook engineer.
- Pull Requests: How to Get and Give Good Feedback Advice for both sides of the code review process, the reviewer and the reviewee.
- Ship Small Diffs Why it’s better to review small changes rather than large ones.
- Stacked Pull Requests: Keeping GitHub Diffs Small A step-by-step process to split big PRs and increase review engagement.
- The Art of Humanizing Pull Requests Emoji rich guide to the human side of code review via pull requests.
- Towards Productive Technical Discussions Tactical questions and actions to push code review discussions into a more productive territory.
- Unlearning Toxic Behaviors in a Code Review Culture A how-to guide for pull requests via how-not-too.
- Why I changed the way I think about Code Quality Why code quality is about more than just the code.

## Books

- Best Kept Secrets of Peer Code Review Older compilation of 10 essays on the practice of code reviews. Some repetition due to different authors covering the same territory.
- Handbook of Walkthroughs, Inspections, and Technical Reviews Older book covering more formal walkthroughs but covers politics and group dynamics in review well.
- Peer Reviews in Software: A Practical Guide A practical guide to formal code inspections as a code review practice.
- Software Inspection: An Industry Best Practice Compendium of papers on code review practice.
- Ultimate Guide to Code Reviews Codacy sponsored ebook of code review practices based on developer survey.
- What to Look for in a Code Review JetBrains sponsored ebook of how to spot coding anti-patterns during review.

## Talks and Podcasts

- Code Reviews: Honesty, Kindness, Inspiration: Pick Three - Jacob Stoebel RubyConf 2017 How to do effective code review while remaining kind to the original author.
- Goldilocks and the Three Code Reviews - Vaidehi Joshi RedDot Ruby Conf 2017 Finding just the right amount of code review by focussing on what is affecting.
- Implementing a Strong Code-Review Culture - Derek Prior Railsconf 2015 How to instill a healthy code review culture in a team.
- Michaela Greiler on Code Reviews - SE Radio 2020 Michaela Greiler discusses the importance of code reviews and how to conduct them on the Software Engineering Radio podcast.

## Tools

- Axolo Github/GitLab Slack integration. Create one ephemeral channel per pull request/ merge request.
- Crucible Atlassian’s on-premise code review tool.
- Gerrit Open source git code review tool originating out of Google.
- GitHub Git hosting and pioneer of the “Pull Request”.
- Gitpod Code review pull requests in a full IDE within your browser.
- LGTM Automated Git code review for GitHub and Bitbucket pull requests for finding security vulnerabilities and code quality issues.
- Phabricator Open source git/mercurial/svn code review tool originating out of Facebook.
- PullNotifier Improve pull request visibility and overall productivity for dev teams using Github and Slack.
- PullRequest Code review as a service for GitHub pull requests.
- Reviewable Code review tool built on top of GitHub pull requests.
- Review Board Open source review tool that is SCM/platform neutral.
- Sider Automated code review service for GitHub.
- Softagram Automated code change visualization (and dependency analytics) for pull requests, merge requests (GitLab) and patch sets (Gerrit).
- SonarCloud Detect code smells, bugs and vulnerabilities in Azure DevOps, Bitbucket and GitHub repositories.
- Upsource JetBrain’s on-premise git/mercurial/perforce/svn code review tool.
- Viezly Code review service with pull request visualization and enhanced navigation between changes.

## Contribute

Contributions welcome! Read the contribution guidelines first.

## License

To the extent possible under law, John Barton has waived all copyright and related or neighboring rights to this work.

codereview.md Github