How To Effectively Code Review When Your Development Teams WFH

Last year, a significant aspect of the modern application development ecosystem has changed. Many brick-and-mortar offices were forced to close as a result of an unexpected pandemic. Staff were asked to complete their everyday tasks remotely. This includes a software development outsourcing team whose daily tasks revolve around developing, building, and improving their employer’s technology needs. 

Asking your software engineers team to work remotely for a short length of time, or even a week is different from making a quick pivot and ask everyone to commit and working remotely indefinitely. In fact, the ramifications of this new necessity have sunk into the core of any team’s most pressing need: communication within the team.

How To Effectively Code Review When Your Development Teams WFH

In this article, we want to focus solely on the effective code review while working from the home aspect.

What is code review?

Code review is a software quality assurance process in which one or more persons examine a program primarily by viewing and reading portions of its source code, either after it has been implemented or as a stopgap measure.

When we mention code review, we often talk about peer reviews, merge requests, or pull requests. No matter what phrase chosen to describe the process, the end effect is the same: ask other capable software engineers to evaluate code improvements before releasing them to the next stage of the software development lifecycle.

Does code review matter?

Yes, it does!

With code review, you can avoid introducing flaws like bugs and other issues since you’ll have another pair of eyes on code to see certain potential bugs right immediately, especially because the focus is on a subset of it. Not to mention, developers are frequently so focused on their work that they may, sometimes, off track of existing design standards. This scenario is frequently revealed dyring a code review.

Code Reviews For Level Setting

To avoid any misunderstanding, the purpose of all code reviews should be to preserve the quality of the underlying application or service being reviewed. For all software projects, from mobile app development, web app development, to custom software development, quality should be one of the top priorities of any development team, which may be applied to code reviews. After all, no product owner wants feature code that hasn’t been thoroughly scrutinized from a quality standpoint.

Not to mention, when code reviews are done properly, there are many additional advantages occur, some of which include improved learning opportunity, software engineer analytics, feedback ladder.

Let’s delve a bit deeper:

Learning opportunity

Everyone involved in code review should always consider it as a learning opportunity. In most circumstances, the more experienced reviewer will offer alternatives or suggestions that result in better source code and instruct the submitter on better ways to do so. Not only the submitter can learn something new but also the reviewer as well. 

Feedback ladder

Daniel Wilson (Harvard Project Zero) created the “Feedback Ladder”, which is a system or structure that fosters a culture of trust and support by sequencing constructive feedback in a logical way. Later on, this cognitive approach to code reviews was applied by Netlify. 

Given that no two developers handle problems in the same way. Code reviews can soon get clogged with comments and feedback more than about code quality and reference. While the suggestions may be sound, they do not address a problem with the code under review. Reviewers can refix suggestions with one of the following categorizations using the feedback ladder method:

(1) Mountain - code review is halted until the issues raised in the comments are resolved; (2) Boulder - blocks movement yet can be moved forward (with a remediation plan); (3) Rock - not blocking, but more work is needed in the future; (4) Pebble - not blockchain, but will be considered in the future; (5) Sand - not a barrier.

Leslie Cohn-Wein’s original design of Netlify uses different terms like Mountain - Boulder - Pebble - Sand - Dust. Either way of terms is equivalent.

Software engineer analytics 

The code review process itself allows for the collection of analytical data on software engineers taking part in the lifecycle event. This type of data can be useful in justifying decisions that must be made as a result of periodic performance reviews.

A manager can utilize multiple examples to argue merit increases to increase management for code reviewer who is continually focused on following design principles and delivering quality.

How to code review when you software development team WFH?

Since the pandemic, most software development teams have to work from home, but with regard to code review, there is a very productive workflow that results in positive code review practices.

Communication is present at every stage of the workflow to keep the code review active and to alert other teams working on the same application or component. All stages of the flow include:

  • Create a fresh code review with the help of git-based tools.
  • Document -  this stage goes above and beyond code review by including extensive information like diagrams or video links.
  • Collaborate - walk through the intricacies of the code review via screen sharing or a team-based tool.
  • Adapt - based on feedback ladder, and make the appropriate changes.
  • Merge - complete the code review process by merging the file upon approval.

Some examples of communication are (1) links to code review should be directly sent instead of email, (2) when the code review has been accepted and updates are available, make an announcement, (3) provide details about the code that has been accepted.

Conclusion

Based on our software development history and experience, the code review process is critical. If you ask any top-ranked Vietnam software outsourcing companies or offshore development centers out there, they’ll tell you the same. 

Follow our blog post to know more about custom software development and how to effectively boost your engineers teamwork results.