May 9, 2019
3 Strategies Your Development Team Can Use For Timely Code Reviews
Implementing a code review process in your organization helps with two things. First, you ensure that projects aren’t siloed by specific developers. By having to review each other’s code, developers can become familiar with the code base even if they don’t directly work on that project.
In addition, if multiple people look over the code, your product should be more secure and contain less bugs. It also helps standardize how development is done. When multiple people have differing views on how something should be implemented, it gives the team discussion points so they can consensus.
Generally, it’s not hard to get buy-in on implementing a code review process in your development teams. Many developers think it’s a good idea. The hard part is on follow-through.
Just like implementing new habits in our personal lives requires us to change things around, teams implementing a code review process must also give up on their old ways of doing things. Since that can be challenging, it’s important to have a specific system in place for how code reviews must be carried out before your teams start doing them in earnest.
Those who fail to have such a system are usually afflicted by increasing backlogs of code that haven’t been reviewed. This will eventually create frustration among those who want their work to be reviewed, as well as those who do the reviews.
To help you implement your own process, we’ve listed different strategies for you to review and use as starting points to design one that best suits your team.
#1. Review small chunks of code in an hour
When software developers know their code will be reviewed by others, they tend to be more aware of their code comments, they format their code better with a logical flow of the software. All of these are good things to encourage with developers before testing and releasing code. It makes software easier to understand and modify for the original developer and future developers who may be maintaining the code.
A side effect of this is the code to be reviewed may grow larger than is practical to review at one sitting as a developer writes the best code possible. Reviewing software can be a mentally labor-intensive effort and the larger the section of code being reviewed, the more complex and challenging this effort can be. A best practice is to review smaller sections of code (500 lines or less) limited to one hour or less. The code reviewer will be more able to identify improvements or catch issues with a smaller body of code resulting in a better product to be released.
Project managers, software developers and code reviewers all must work together to achieve this goal of reviewing smaller sections of code on a regular cadence.
#2. Deadline system
Adding a deadline to your code commits, where they must be reviewed within a certain amount of time, can be added to any other system but it can also be your standalone system if your team is responsible enough. The idea is that you track which commits have not been reviewed yet and give them a fixed deadline for when they have to be reviewed.
If you use a development methodology similar to Agile as we do, you can base the timeline of your code reviews around the sprint period. And while code reviews are generally useful, if the scope of the sprint is experimental in nature or must be finished unusually quickly, code reviews can be skipped altogether. Although this is not ideal, it does allow development managers more leeway when it comes to negotiating deadlines with stakeholders.
#3. Buddy / round robin system
If your teams are small enough, each developer can have an assigned partner who is responsible for reviewing their code. For example, A reviews B, B reviews C, C reviews A.
The advantage of this system is that because developers tend to work on one area of software at a time, the reviewer will have a better view of the bigger picture when it comes to looking at their reviewee’s commits.
This is the easiest system to set up as everyone can be told who their partner is, and developers simply need to message their partner whenever they have code to review.
This is also the system where responsibility is the most clear. Since every merge request has a known reviewer, it’s possible to know who is or isn’t keeping up.
An alternative to this is to have each merge request assigned to a person on a case by case basis, where either the author picks who should review it, or a manager does. This can be done should an assigned reviewer be out of office.
We hope this article gave you a jumping off point to get started on designing your own code review system. It’s important to keep in mind that because reviewing code benefits the group more than the individual, the responsibility should be divided equitably. It’s also important to instill the value of code reviews to your team to tap into more intrinsic motivation long term. If you’d like to hear more of our thoughts on managing software development projects or get a free estimate on a software project, get started here.
Dave Cunningham
Founder and CEO
A seasoned technical leader with over 30 years software engineering experience, Dave is a passionate collaborator who brings teams together for success.
Dave Cunningham
Founder and CEO
A seasoned technical leader with over 30 years software engineering experience, Dave is a passionate collaborator who brings teams together for success.