DEV Community

heyimsunflower
heyimsunflower

Posted on • Updated on

We started to approach code reviews as engineering tasks. We're merging now faster than ever

In the fast-paced world of software development, effective code reviews and seamless management of merge requests (MRs) play a crucial role in ensuring smooth collaboration and timely delivery. However, many teams struggle with bottlenecks, delays, and the risk of MRs getting lost in the shuffle. In this article, we will explore a practical approach to address these challenges and optimize the code review process, leading to improved team efficiency and streamlined collaboration.

As a team manager overseeing a group of talented developers, I have encountered firsthand the common pain points associated with code reviews and MR management.

With a team size of approximately six developers and a broader organization comprising around 200 developers, it became evident that our existing approach was falling short.

The traditional method involved throwing MRs into the team's communication channel, resulting in the need to constantly ping team members for reviews. This approach proved to be suboptimal, with developers often experiencing unnecessary delays, and MRs occasionally being forgotten or overlooked.

Experimenting with a New Approach

To address these challenges, we embarked on an experiment to integrate code reviews seamlessly into our daily workflow. During our daily standup meetings, we started assigning unreviewed MRs to each team member based on relevancy, code ownership, and availability. This approach aimed to make code reviews an integral part of our daily routine, ensuring that reviews were completed in a timely manner and reducing the need for continuous follow-ups and pings among team members.

The Results and Benefits

The implementation of our new approach yielded promising results. Developers were more proactive in completing their assigned reviews, taking ownership of their time slots and allocating dedicated periods for code reviews. This proactive mindset not only expedited the review process but also reduced the effort required to coordinate and ping other team members for reviews. The overall impact was a significant reduction in the time it took to merge code, enhanced collaboration, and increased team productivity.

Seeking Further Insights

While our new approach has shown considerable success, we believe in the power of shared knowledge and continuous improvement. We invite fellow engineering managers and developers to share their experiences and provide additional insights into reducing code merge time and improving collaboration. By fostering a community of learning and collaboration, we can collectively refine our practices and optimize the code review process.

Top comments (3)

Collapse
 
fyodorio profile image
Fyodor

Good idea for mediocre teams (i.e. most of the teams) — maybe even inevitable unfortunately (“unfortunately” because it all looks so stupid from the outside — and no offense here, I’m in it myself). A better alternative would be to have a team of responsible autistic developers loving their job but it’s hard to gather and even harder to nurture and motivate for any reasonably long time.

Collapse
 
imri profile image
heyimsunflower • Edited

Agreed on everything and no offense taken; after all, the only reason we developed that tool is to enforce good culture.

Collapse
 
apetryla profile image
Aidas Petryla

We're handling MRs using email. Once someone creates a MR ready to be reviewed, he/she tags people who should take a look at it and those people get email notifications (as they were tagged). In such way no additional assigning or discussing is required. In case someone takes longer to take a look at the MR, then one could ping the person.

I personally also have email filters set up, which are filtering emails related to MRs and directing them to a separate directory. So no matter how many emails I get during the day, I always know if there's a MR waiting for me. :)