Ever consider making a pull request to someones pull request? Sounds a bit odd, but I’ve found it smooths collaboration and increases learning opportunities.

I was first introduced to the idea by Chelsea Troy’s blog, and I’ve found the technique extremely valuable.

Challenges with Reviews

Having your code (or any kind of work) reviewed can feel vulnerable. Much software work is the result of spending a lot of time with a problem. The final code design is often the result of many intersecting design forces coming together with intricate detail.

Suggesting changes to such work can be challenging. Explaining a desired change can require a lot of context. Plus, the author probably feels the work is finished, that’s why they pull requested in the first place. Non-trivial changes can feel like increasing their work.

Pull-request Suggestions as Pull-requests

It’s a tall order to to explain a different approach, why it’s worth the effort, and also keeping it all short enough to feel achievable.

So tall, in fact, that it’s often easier to just make the code change you want to see, and then pull request those changes to the reviewed branch with an explanation.

The explanation can be shorter because the code itself will provide a lot of context. All participants can ask questions or explain their own choices more easily in the contrast between the two versions.

The suggestion is also much easier for the code author to receive. They maintain control over their own work because they decide whether or not to merge your changes.

The original author also isn’t being asked to do more work, they can just merge your suggestion if they like it.

Submitting suggestions as a PR has a lower barrier to adoption and frees more bandwidth for considering the suggestion itself. As such, it’s also a great way to introduce new ideas to the team.

Conclusion

Overall, submitting review suggestions as a pull request feels more like help and less like a critique. It reduces friction in reviews and opens up higher-quality opportunities for knowledge sharing.