Blog

No More Excuses: The Power of Code Review

Over the years, I’ve done a lot of experimenting trying to figure out how to help my projects and teams run smoothly and efficiently. The resulting bag of tricks gives me a strong arsenal from which I can pull, but not every trick in my bag is applicable to every organization, team, or project – except for one. The code review. 

I’ve been invited into dozens of teams, but more often than not I’ve found a lack of commitment to the code review process, whether it was treated as a pointless formality or forsaken altogether. While it’s always disappointing to see, as a consultant, it’s low-hanging fruit that makes me salivate because I immediately know I’m going to be able to earn my keep and radically transform this team and project.

That’s a powerful statement, and it might lead you to wonder, 

“If it’s that powerful, why doesn’t everyone do it?” 

There seem to be a few common “excuses” amongst the teams that don’t put any effort into code reviews:

  • There’s not enough time
  • The conversations become contentious
  • No one participates
  • They don’t add any value

If you’re reading this, perhaps you, someone on your team, or both have used or subscribed to one of these excuses. Let’s break each of them down and dispel the negative narrative so we can banish these for good.

Excuse One: There’s Not Enough Time

Teams always need more velocity, and it seems most teams tend to underestimate the effort required to complete large projects. Tossing a production bug into the mix is a bit like throwing a grenade right into the middle of the scrum board. So we end up burning the midnight oil while praying for an 11th hour miracle so we can release on time. There’s no time for this pesky code review I speak of, right? 

Code reviews make every member of the team better, stronger, more skilled developers through the knowledge share and coaching that happens as part of the process. The overall velocity of the team trends upward over time because your less experienced developers are getting feedback on every line of code they write, while your more seasoned developers are getting to see different approaches to solving complex problems, and being exposed to parts of the codebase they otherwise wouldn’t have any knowledge of. Sizing the tasks becomes a lot easier and more accurate because of this knowledge sharing that organically happens during the code review process. We’ve now effectively created a cycle in which the developer is getting better and has more exposure to the codebase on a daily basis. The result is a better codebase and better developers. It’s a win-win!

Excuse Two: The Conversations Become Contentious

We software engineers can be prideful, opinionated individuals. The most important thing to recognize and preach is that there’s no room for ego in the code review process. Everyone, no matter their tenure and skill level, can learn something from engaging in the process. This simple rule ends up cascading throughout the team culture and fosters a supportive environment that helps each member of the team grow on a daily basis.

Excuse Three: No One Participates

There’s nothing more frustrating than seeing a pull request sit there for days on end, which can ultimately lead to some pretty frustrating merge conflicts, or worse, the subsequent creation of functionality that doesn’t play nicely with that in the pull request. The bad news is that this comes down to team culture. The good news is that it’s easy to fix. Sit down with your team, explain the benefits and goals, outline the expectations and roles each team member plays as part of the process, and commit to the process as a team. The burden of holding the team accountable to the process doesn’t fall on any one person. It’s the responsibility of the entire team to facilitate this process. 

Excuse Four: Code Reviews Don’t Add Any Value

Time for some tough love. If this is the stance you or your team takes, you’re doing it wrong. It’s that simple. We’d be here all day if I tried to list all the ways teams get the code review process wrong. Instead, I’m going to give you some quick tips that you can take and put into action with your team today. (And look for deep dives into some of these topics in upcoming articles.)

  • No egos, no arguing, be helpful, learn and help others learn
  • Tech leads should be on every code review, and their signature should be required to merge all pull requests
  • A total of two signatures should be required on every pull request
  • Post the link to pull requests into a common chat channel
  • Everyone on the team should participate
  • No one is ever “too deep in the code” to take a few minutes to look over a pull request
  • Keep pull requests small, which can be facilitated through better task management
  • Create a “code review playbook” that includes a list of things to keep an eye out for and that clearly documents your team or organizations code style rules (be sure to couple this with lint rules and auto-formatting)

Newton’s first law of motion says, objects in motion tend to stay in motion. Sometimes the hardest part of the process is simply getting started. Make the effort to get a solid code review process in place, and the rest tends to take care of itself. I’ve had so many developers come back to me months later with a completely different attitude toward the code review process, even the worst of skeptics.

If you want to see a dynamic and quick shift in the culture and velocity of your team, this is the easiest and most fruitful first step to radically transforming your team and creating an environment that fosters growth. The best time to plant a tree is 20 years ago. The second-best time is today. 

 

About the Author:

Wes Dollar is a full-stack engineer with 21 years of experience in website & web-based software development. He has served as a business analyst & tech lead for clients ranging from startups to Fortune 500 companies. He has a passion for providing solutions to complex problems in a manner that is intuitive and easy for the end-user to use & understand. Most of his career has been spent on the open-stack side of the fence, where he has made many contributions to the Laravel (PHP) ecosystem. He is an HTML5/CSS3/JavaScript expert with strict compliance to W3C standards & 508 accessibility. He specializes in ecommerce & conversion rate optimization through UX design and also specializes in developing business systems, processes, and integrations.

Related Blogs
See All Blogs
Blog
Jul 19, 2024

Soft Skills for Tech Leads: How They’ll Help You Excel at Your Role

If you manage a team, you already know that this experience can be as challenging as it is rewarding. At Sparq we have different management roles and one of the most essential is the Tech Lead position. In addition to being seasoned developers, Teach Leads need to be able to mentor up and coming talent. One of the ways they do that is by utilizing soft skills. In this article, Delivery Lead Rodrigo Trelles explores the most important soft skills to be a successful Tech Lead.

Read More
Blog
Jul 16, 2024

Exploring the World of a Site Reliability Engineer (SRE)

Technology is advancing rapidly and the new advances introduce new roles and responsibilities. Among the most significant roles is the Site Reliability Engineer (SRE). This article will explore the role of an SRE, how it differs from a software developer and the essential skills required to succeed in the field.

Read More
Blog
Jul 10, 2024

Automated Testing Applied: How This Practice Can Help Developers Across Projects

In this article, Technical Lead Pablo Carballo shares how automated testing practices have made his team's work more efficient and diverse.

Read More
Blog
Jul 2, 2024

Inside the Minds of Digital Innovators: Highlights from OctoTalks Podcast

Creating exceptional digital experiences involves a blend of creativity, strategy and technology. Octobot, a company that was recently acquired by Sparq, hosted a podcast that delves into these elements by showcasing the visionaries who dream up and build these experiences. In this blog post, we want to share some highlights about the conversations and invite you to give it a listen!

Read More
See All Blogs
noun-arrow-2025160 copy 2
noun-arrow-2025160 copy 2
See All Blogs