Epiphanies for Everybody

Pull Requests and Software Development

Pull Requests and Software Development

December 08, 20222 min read

Pull Requests and Software Development

I am not of fan of PR-based workflows for a few reasons:

  • Encourages laziness. I have worked with many teams where over time, shortcuts get taken because potential issues will ‘be caught during the review.’ I’m not saying the teams are lazy. Quite the opposite — they were full of thoughtful, caring, diligent, people. But the PR process invited laziness, and when delivery pressure encouraged them to cut corners, PRs made it easy to sacrifice responsibility.

  • Creates bottlenecks. The only people qualified to review something are those that know it really well, either due to domain knowledge, technical knowledge, or both. This makes junior developers dependent on senior developers, which creates a bottleneck in your senior people, who then don’t have as much time to work on code

  • Disjointed. PRs are rarely reviewed immediately. Every hour and day of delay means more context is lost, and higher difficulty if a mistake is found.

  • Substitute for good practice. When pair programming, or mob programming, good practice is built into the collaboration. PR-based workflows often abandon that collaboration, opting for asynchronous reviews. This decreases opportunities for learning, while increasing context switching and bottlenecks.

  • Too late. An ounce of prevention is worth a pound of cure. PRs are often too little, too late. The focus is on catching errors, not preventing them. In this way, they’re part of the same school as segregating development and testing — understandable, but bad.

Ultimately, PR-led development is about preventing bad things from being committed. It’s more effective if we prevent bad things from being written. So PRs will always be sub-optimal.

I was shocked the first time somebody said, “We don’t need a bug database; we don’t write bugs.” It was extreme (there was the occasional bug), but the truth was they didn’t need a bug database. And with the right approach*, nobody does.

*there’s a ton of work and assumptions behind ‘right approach.’ Easy to say, hard to do.

Back to Blog

Subscribe to my Newsletter

Handcrafted by Coach Foundation | Copyright © 2023 Noah Cantor Ltd | All Rights Reserved