Managing a collaborative development project on a large scale can be challenging. Although the members of your dev team can communicate face-to-face or via email, there’s always the risk of something going wrong:
- Things get forgotten–we’re all human
- Email threads can be complicated to follow
- Conflicts that pop up when multiple people make modifications to different portions of the codebase all at the same time.
And everything becomes exponentially more complicated when working on an open-source project with people that might not have met before.
Pull requests to the rescue!
This article will discuss pull requests, how they fit into the development process, and why they’re important for code review.
What Is a Pull Request?
Software developers use pull requests, otherwise known as PRs, to initiate the process of integrating new code changes into the main project repository. Pull requests are sent through git systems, like GitLab (called merge requests), GitHub, and BitBucket, to notify the rest of your team that a branch or fork is ready to be reviewed.
Instead of being merely a notification, the pull request serves as an entirely separate venue for discussing the new feature. Updates can be kept isolated from the main project while also increasing internal and possibly external collaboration and streamlining debugging.
If the changes have any issues, your team can provide input through the PR and push follow-up commits to modify the feature. Each one of these activities is logged immediately within the pull request.
How Pull Requests Fit In the Development Process
Using a PR in GitHub, developers can add more features or fix bugs without altering the project’s source code or affecting the user experience. By doing so, they can test and develop code changes at a local machine without fear of disrupting the entire program.
Here’s how git pull requests fit into the development process:
- Fork the main git repository and generate a topic branch
- Make any necessary changes on a local level
- Changes made on a local machine will be pushed to the forked repository
- Open a pull request
- Conduct the code review
- Integrate with the base branch
Why Are Pull Requests Important for Code Review?
Pull requests are built on the principles of code review and team collaboration. Developers can request reviews from their colleagues and track the build status of their work via PRs.
Additionally, using pull requests in the code review process enables you as the leader to track your team’s review process as a whole. Our data science team at LinearB studied over 2,000 dev teams and discovered that the biggest factor contributing to long cycle time is the code review process, specifically around pull request pickup time, pull request review time and pull request size.
You can’t improve what you don’t measure, which is why we aggregate your issues, Git, and release data into one platform. But we believe that context is just as important as metrics.
It’s great to know what your cycle time is and to even break that down to see coding time, PR pickup time, PR review time, and deploy time. But you then have to know if your average times are good or bad.
We compiled the data from this study into the engineering benchmarks. This analysis identifies key metrics and breaks them down into tiering that helps R&D teams understand their performance and define “good.”
Want to learn more about being an elite engineering team? Check out this blog detailing our engineering benchmarks study and methodology.
Now you can use your pull request data to see where you stand against industry standards and which areas need focus to help your team deliver on promises and ship features faster.
We’ve also taken it a step further and automated the improvement process. All you have to do is establish improvement goals with your team, set them up in LinearB, the platform will then keep your team on track with real time alerts and data that you can use to track your progress–all key aspects of a holistic engineering metrics program.
The Bottomline
It can be difficult to manage a collaborative development effort among a large team, especially if they’re remote. One of the things that can make things easier and more efficient is establishing a mature PR process. By doing so you can greatly improve the team’s productivity and efficiency.