Code Reviews
Learn Code Reviews with the Practica AI Coach
The Practica AI Coach helps you improve in Code Reviews by using your current work challenges as opportunities to improve. The AI Coach will ask you questions, instruct you on concepts and tactics, and give you feedback as you make progress.Intro to Code Reviews
Code reviews are a crucial part of the software development process that involves examining code to identify bugs, improve quality, and promote best practices.- My Code Review JourneyJonathan shares his journey to discovering the value of code reviews. He includes helpful advice for all parties in a code review system: authors, reviewers, and leaders. He covers: • What’s the goal of a code review • How to review another’s code • How to prepare your code to be reviewed by others. • Don’t be a jerk
Common Code Reviews Challenges
These are common challenges people face when gaining expertise in code reviews. Tackling these challenges head-on can help you learn this skill quicker.
I'm a senior software engineer leading a team of junior developers. During a code review, I noticed that one of the junior developers consistently makes the same mistakes in their code. It's causing delays in our project and I'm concerned about the quality of their work. I'm not sure how to address this issue without demotivating the developer or damaging our working relationship. What strategies can I use to provide constructive feedback and help them improve their coding skills?I'm a software engineer working on a project with a tight deadline. I submitted my code for review, but the reviewer has been taking a long time to provide feedback. This delay is causing a bottleneck in the development process and slowing down the project. I'm unsure how to approach the reviewer and ask for timely feedback without coming across as pushy or impatient. How can I effectively communicate the urgency of the situation and ensure prompt code reviews?Work on your own challenge with the Practica AI CoachFurther Reading
- Characteristics of Useful Code Reviews: An Empirical Study at MicrosoftAn in-depth, quantitative study on the effectiveness of code reviews.
Example Code Review Policies
Example code review policies may include guidelines for the frequency and scope of reviews, the use of automated tools, and the roles and responsibilities of different team members. Policies should be tailored to the needs and culture of the organization.- GitLab's Code Review GuidelinesGitlab's code review guidelines for GitLab team members and wider community members to ensure code is effective, understandable, maintainable, and secure.
- Code Review GuidelinesYelp's code review goals, guidelines and checklists.
- On Code ReviewGlen emphasizes that code review should be the top priority for all team members, and offers advice to reviewers and submitters.
Code Reviews Cheat Sheet
Here is a quick reference for the top 5 things you need to know about Code Reviews.
- Step 1: Establish Clear Expectations
- Learn or define the purpose and goals of the code review process.
- Understand existing guidelines for code quality, style, and standards.
- Learn the roles and responsibilities of reviewers and developers.
- Step 2: Review the Code
- Understand the context and requirements of the code.
- Assess the design, architecture, and implementation.
- Identify potential bugs, security vulnerabilities, and performance issues.
- Step 3: Provide Constructive Feedback
- Focus on the code, not the developer.
- Be specific, objective, and actionable in your comments.
- Offer suggestions for improvement and alternative approaches.
- Step 4: Collaborate and Discuss
- Engage in open and respectful discussions with the developer.
- Seek clarifications and address any concerns or questions.
- Encourage a learning environment and knowledge sharing.
- Step 5: Follow-Up and Closure
- Verify that the identified issues have been addressed.
- Provide acknowledgment and appreciation for improvements made.
- Document lessons learned and share insights for future reviews.
- Step 1: Establish Clear Expectations
Guidance for the Code Author
Code authors should strive to write clean, readable, and maintainable code, and provide clear documentation and explanations for their decisions.- Writing pull requests your coworkers might enjoy readingA Twitter engineer shares advice for getting people to review your code: discuss code changes beforehand, make them small, and describe them clearly.
- The 10 commandments of navigating code reviewsAngie discusses how code review feedback can often lack thoughtfulness, and how to take it in stride.
Guidance for the Code Reviewer
Code reviewers should approach reviews with a constructive mindset, focusing on providing feedback that is specific, actionable, and respectful. They should also be aware of common biases and blind spots that can affect their evaluations.- How to Do Code Reviews Like a Human (Part One)Michael explains what is a code review and why are they hard, and then covers 8 techniques for how to do them well: Let computers do the boring parts; Settle style arguments with a style guide; Start reviewing immediately; Start high level and work your way down; Be generous with code examples; Never say “you”; Frame feedback as requests, not commands; Tie notes to principles, not opinions
- What to look for in a code reviewIn Google's internal documentation for code reviews, they tell code reviewers to look for: design, functionality, complexity, tests, naming, comments, style, consistency, documentation, every line, context, & good things
- Code Review Best PracticesKevin covers: • What I look for during a review: architecture / design, style, testing • Review your own code first • How to handle code reviews • On mindset • Addressing suggested changes
- Context-sensitive code reviewsRobert describes three levels in the growth of a developer’s code review expertise: • Context-free code reviews • Context-aware code reviews • Context-sensitive code reviews
- A Guide to Mindful Communication in Code ReviewsAmy offers some tips for both code reviewers and authors on practicing mindful communication to maximize the teaching and learning value of code reviews.
Frequently asked questions
How can I make my code reviews more effective and efficient?
Focus on clear communication, setting expectations, and using the right tools. Ensure that the code author provides a clear description of the changes and the context for the review. As a reviewer, prioritize critical issues, such as bugs, security vulnerabilities, and performance problems, and provide constructive feedback. Utilize code review tools that facilitate collaboration, automate routine checks, and help track the review progress.
How do I handle disagreements during a code review?
Handling disagreements during a code review requires open communication, empathy, and a focus on the code rather than personal opinions. When a disagreement arises, discuss the issue calmly and objectively, considering the pros and cons of each approach. If necessary, involve a third party or refer to established coding standards and best practices to help resolve the disagreement. Remember that the goal of a code review is to improve the code quality, not to prove who is right or wrong.
How can I ensure that my code reviews are inclusive and promote a positive team culture?
Promoting inclusivity and a positive team culture during code reviews involves being respectful, constructive, and empathetic. Provide feedback that focuses on the code, not the person, and avoid using negative or judgmental language. Encourage team members to ask questions and share their perspectives, and be open to learning from others. Recognize and appreciate the contributions of all team members, and foster a collaborative environment where everyone feels comfortable participating in code reviews.