Stop Using Pull Requests (a4al6a.substack.com)
from codeinabox@programming.dev to programming@programming.dev on 22 May 2026 11:39
https://programming.dev/post/50793895

TL;DR

#programming

threaded - newest

felsiq@piefed.zip on 22 May 2026 13:32 next collapse

For anyone else who might get clickbaited by the headline: this is not meant for open source, they’re only talking about small corporate teams

codeinabox@programming.dev on 22 May 2026 13:47 collapse

Thank you! I’ve updated the post with the TL;DR from the article.

karlhungus@lemmy.ca on 22 May 2026 13:57 next collapse

disagree, pr’s catch tonnes of shit, knowledge transfer is useful even in trusted teams. they also don’t prevent any test driven development or continuous integration.

team focused development pairing are also pulling studies from 2005 before pr’s were meaningfully a thing.j Also as someone who’s done a significant amount of pairing, it’s not that easy. I can’t imagine mob programming.

NotSteve_@lemmy.ca on 22 May 2026 16:41 next collapse

I hate having to harass people to review my PRs too but getting rid of them entirely seems insane to me. Most of the issues with pull requests can be sourced more to the size of changes rather than their existence. If you can keep your PRs small enough that someone can review it in 5-10min then things get a lot easier for everyone but deleting the step entirely means nobody is watching what’s being submitted

Like, you might have someone working on something in a new codebase but misunderstanding the architecture or just going in the wrong direction in general and a review is the best way to correct course before getting too far in

FizzyOrange@programming.dev on 22 May 2026 17:32 next collapse

I agree. What we need is better PR workflows, not getting rid of review entirely. That’s dumb.

Tamo240@programming.dev on 24 May 2026 14:47 collapse

Like, you might have someone working on something in a new codebase but misunderstanding the architecture or just going in the wrong direction in general and a review is the best way to correct course before getting too far in

I think the article is suggesting this person should be pair programmed with until they understand the architecture and can be trusted to contribute correctly, and I actually kind of agree - it always feels terrible to tell someone a PR they’ve worked on possibly for days is completely the wrong direction, and arguably this is already ‘too far in’ if they’re going to need to essentially start again.

Intervening earlier in the process should lead to less wasted effort overall, but people often seem to treat pair programming like its two people at 50% efficiency, when it actually saves a lot of cycle time on reviewing code.

qprimed@lemmy.ml on 22 May 2026 17:03 next collapse

not a professional programmer, by any means - but PR’s (for me) slow development down to a point where code matches the philosophical/algorithmical goal. when code development is at the proper pace, it dramatically reduces the need for refactoring.

edit: upvoing this post, because the comments are particularly interesting - as with any “good” post :-)

FizzyOrange@programming.dev on 22 May 2026 17:37 next collapse

Yeah if you saw the quality of my coworkers’ code you would not be saying this.

TehPers@beehaw.org on 22 May 2026 18:37 collapse

This. I can’t get them to run lints or tests on their own, and I can’t get the person in charge of the repo to let us run the CI automatically on PR. Combine that with the rampant slop, and a good number of the PRs are just plain unreviewable.

Then you run into the other issue: the PRs get merged too fast to review them properly. How someone approves 50 changed files in a PR with +30000 and -150 lines changed in under an hour is beyond me, to be honest.

FizzyOrange@programming.dev on 22 May 2026 22:06 collapse

I can’t get the person in charge of the repo to let us run the CI automatically on PR

Ouch. Time for a new job. (I’m not even joking - I’d quit if it was that bad.)

TehPers@beehaw.org on 23 May 2026 00:58 collapse

In this case, it’s a customer’s environment, so it’s actually not one of my direct coworkers that’s blocking this. Otherwise I’d agree.

sobchak@programming.dev on 22 May 2026 19:57 next collapse

I did most of this a long time ago when the team was 2-4 programmers. Moved to PRs when we started bringing on interns. No way the business owners would’ve allowed pair programming. Pair programming may be better and more productive, but the decision makers are often more ideological than rational.

ISO@lemmy.zip on 23 May 2026 00:14 next collapse

Pull requests were designed for open source contributions from untrusted strangers. Applying them to trusted teams is a category error.

wrong
didn’t bother reading further

codeinabox@programming.dev on 23 May 2026 09:10 collapse

Could you elaborate on this?

ISO@lemmy.zip on 23 May 2026 09:49 collapse

How many layers should I go through?

Here is a few:

  • PR’s replaced patch sets. Patch sets have nothing to do with “strangers”. Both are the medium where review for a logical grouping of code changes takes place. There is no separate categories here.
  • In most open-source projects, everyone involved is a “stranger” to others anyway, including co-developers if any.
  • PR’s/patchsets are orthogonal to T*D/Trunk-Based/Team-focused development. How can this be missed is hard to imagine. I would have assumed everyone is aware of draft/wip/rfc PR’s, or dev/trunk branches. And tests need development alongside functional modifications anyway.
belated_frog_pants@beehaw.org on 23 May 2026 17:16 next collapse

If PRs arent being reviewed for hours or days thats a management problem. No amount of unit tests are a replacement for another set of eyes.

Senal@programming.dev on 23 May 2026 22:09 collapse

hmm, i have mixed feelings about this.

If PRs arent being reviewed for hours or days thats a management problem.

This i agree with totally.

Whether or not it’s human resource based or policy based, it’s usually a failing of process and that’s generally a fault with management. in my experience anyway.

No amount of unit tests are a replacement for another set of eyes.

This though, while i wouldn’t compare PR’s to Unit testing in the first place there is some overlap in quality control.

If you have robust enough testing suites it can reduce the PR burden in a variety of ways, though most of them come down to automating away the need to catch so many logic and regression bugs.

That’s not to say reviews aren’t needed, they definitely are, it’s just automated testing does have an overlap.

Notice that i said testing suites though, that’s not just unit testing, that’s the whole CI testing caboodle.

natecox@programming.dev on 24 May 2026 16:06 collapse

The problem with automated tests is that they only test for the narrow slice of things you actually think to test for. They don’t cover the gamut of things you didn’t think to test for.

They also only test how you write them to test for, which means if you make a bad assumption somewhere along the way your tests can’t help you find it.

Peer reviews cover two very important things:

  1. Knowledge sharing and de-siloing
  2. Logic and assumption checking

A fresh set of eyes and a different perspective is just so important to writing robust, quality code.

Senal@programming.dev on 24 May 2026 17:41 collapse

The problem with automated tests is that they only test for the narrow slice of things you actually think to test for. They don’t cover the gamut of things you didn’t think to test for.

They also only test how you write them to test for, which means if you make a bad assumption somewhere along the way your tests can’t help you find it.

Indeed, which is why it’s an ever evolving suite of tests, as and when you come across problems and things that were missed, you add automated tests for them.

It’s not magic, you only get out what you put in, but it is automated, which means that if you do a reasonable job you have a lot less to worry about from that particular issue in the future and now you have a much quicker way of checking for it.

Peer reviews cover two very important things:

  1. Knowledge sharing and de-siloing
  2. Logic and assumption checking

A fresh set of eyes and a different perspective is just so important to writing robust, quality code.

Also agreed, and automated testing is a way to partially formalise that knowledge into something that can be checked quickly and deterministically (if you are doing it right).

As i said before it’s not magic and it’s not a replacement, it’s more of an augmentation to relieve some of the cognitive burden.

As with any other approach, it also has it’s downsides, there are ways to go about it that can be actively detrimental.

In my experience a well done (and maintained) automated suite is a boon to ongoing development.

thingsiplay@lemmy.ml on 24 May 2026 00:54 next collapse

Stop telling me what to do. You are not my real dad.

Kissaki@programming.dev on 24 May 2026 16:09 next collapse

I would rather not have my 20-60 work commits, possibly shifting solution design twice or three times, in the main project history, spanning days and sometimes weeks, invalidating earlier commits, and a hassle if not impossible to reasonably and efficiently document changes between them. And all those changes intertwined with my other work and my colleagues’ changes.

The key insight from Charity Majors is that speed and safety are not trade-offs – speed IS safety. “Ship a single changeset by a single dev at a time, making it easy to isolate the owner of any problem, preventing the blast radius from expanding, and making it easy to fix while the intended effects of the code are fresh in their mind.”

I really don’t get how “develop in feature-flagged trunk” is supposed to come together with “single dev single changeset”. Work evolves. Design evolves. Surely, multiple/many “single changesets” must come together to form new features and changes? This claim seems to assume issues are found before it’s being changed again, and in a timely manner, even when it is behind a feature flag?

Were pull requests really “created for FOSS”? I feel like, maybe assume, pre-merge reviews have been a thing before that [and unrelated to PRs].

I feel like the article could have been structured a lot better, and made its point without a “it’s like this” “but maybe not” digression. Feels like inflammatory bait into relativation. I guess I’ll refrain from raising my other points and disagreements that I noted because by the end of the article, it wasn’t really claiming it broadly anymore anyway.

Outside of the irritation, I found the arguments interesting. I’ll keep it in mind, but I don’t see my team implementing it like that or to a higher degree. For various reasons.

Despite the negative vote sum, I think it’s an interesting alternative perspective. Even if I found it irritating to read, and even if people hate it, it’s a good discussion in the comments. About how we work.

onlinepersona@programming.dev on 27 May 04:17 collapse

Trunk based development is like being stuck in CVS or SVN. Please, let’s not go back to that. Those were horrible times.