Advertisement
Advertisement
⚡ Community Insights
Discussion Sentiment
71% Positive
Analyzed from 3145 words in the discussion.
Trending Topics
#code#pair#review#programming#person#while#pairing#don#should#before
Discussion Sentiment
Analyzed from 3145 words in the discussion.
Trending Topics
Discussion (69 Comments)Read Original on HackerNews
Pair programming once in a while can be incredibly valuable. I am glad to meet with anyone and talk over their code in person, brainstorm designs, run through a debugger together investigating it.
But if you asked me to do that for most of an 8 hour day - much less most of the time in general - I would quit the job faster than you could fill out the paperwork. Constantly having someone looking over your shoulder is a world of stress and overstimulation that I (and I suspect many others) will not stand for.
It works really well, but it is exhausting, and difficult to sell.
IM notification from an old teammate pops up complaining about my boss? Seen.
Switch to a window with my personal email and they can see that thing I just bought or that recruiter I've been talking to? Seen.
I type a stupid thing that will never work? In the 5-30 seconds before I realize it, seen.
It doesn't matter if I trust my pair. That's not how the brain works.
8 hours a day pairing means that pairing is the default, but it’s not the only thing that ever happens.
also: 8 hours/day pairing meant 16 hours/day not working at all in my case. Really really really not working. Not checking Slack. Not trying out some crazy idea. Not working at all.
Definitely not good for long running work and chasing bugs.
There have been (extensive) discussions on this topic here [1]. I don't seem to be alone in the inability to think clearly with interruptions.
[1] https://news.ycombinator.com/item?id=22059601
this takes time to learn of course. and individuals handle this differently. i to can't handle interruptions, but when i am focusing a piece of code, and my partner telling me or asking me something about that same piece of code, then for me that's not an interruption. interruptions are notifications and being asked to change the focus on something different. that should not happen when pair programming.
another aspect not mentioned yet, when there is an actual interruption from the outside, one of the people in the pair can handle that interruption, while the other continues to focus. the interrupted one can then jump back in much faster than you would if you were interrupted while alone.
My understanding is that there is no one person saying what's next but what's next gets decided by both people. Otherwise, the other person is just a typist.
> a world of stress and overstimulation
yeah so I think the thing here is that one of these is an objective outcome of pairing, and the other one is a personal preference. Which is a valid preference, but it does nothing to refute the fact that pair programming is a great solution for the issues laid out in the article.
I don't particularly like writing tests, but that doesn't stop me from doing so. I think we should think about pair programming like we think about tests: a necessary part of the process, and something most companies don't do enough.
It scales fine to 400+ engineers. You do have to be willing to hire specifically for pairing tolerance.
I'd also hate it with every cell of my body, but for some it's just another way of life.
I spent a few weeks in the cave and it was surprisingly chill, not nearly as oppressive as it sounds. (Although, I was much more energetic a decade ago and maybe it wouldn't be quite as fun these days :-P.) I still have a picture of my madness-induced, Git hook–infested scribblings....
[0] The team's usual room was an open floor plan, which was fine with good headphones, but naturally that solution doesn't work for pair programming.
I think these proponents of AI have a very large burden on them to not just make this palatable for developers, but to actually make it "scale" as you say.
The human code review process for AI generated code will simply die due to lack of interest. Its up to the organization to find a suitable replacement or continue to pretend that half asleep disinterested developers are going to fix all this trash.
Have fun with that!
4 hours of pair programming per day can therefore possibly be enough to make up for the increased loss of performance in the rest of the day.
I suspect this is a simple social anxiety you could train away.
just drink a cup of NO and you'll be fine.
(i agree that maybe OP pointing that out is nitpicking, but to steelman the case, such inaccuracies are what code review would find and are the subtle bugs that might pass a code review and break prod)
(we are nitpicking the nitpicking, it's nits all the way down. my last line in the previous comment was also based on the image. to shatter your steelman, picking on the illustration of the article that is just there to add some color is at best like a code review complaining about style or indenting. with endless bikeshedding opportunities, not something a code review should be focusing on. if the picture were of central importance then that would be different. btw, i am not complaining, i am having good natured fun here)
> easily identifiable problems
sent me down. as soon as I parsed that line I stopped reading, and I tabbed back over to spot them
Sounds cute. But you won't know what any of them really are until you've built at least one of them. You can write specs and have meetings for years and you'll still miss something fundamental about the approach that will be discovered in the first hour of building.
I'm at a startup myself and we make judicious decisions about what to review and what doesn't need review. Our core systems go through code review - alignment is always built up early anyways.
Claude would be proud.
That said, code reviews have never worked well, and it's a weird argument for wanting to preserve them.
Pairing is great and under-utilized. On one hand it's a hard sell to managers (let's use two people to do one person's job) and from the developer's point of view, it's intense and exhausting.
She's arguing that most code reviews aren't necessary. Some can be automated if they are deterministically predictable (eg. formatting, lint, standardization changes). Others should be reviews of design before the coding phase.
She gives a few specific examples of when code reviews should be maintained.
In before, “you’ll be left behind crowd”, I agree, most of what we call SWE in 2026 will probably just be done by agents, at which point I’m not sure why humans are even reading it. Stop bottlenecking your agent when it’s building the nth slop website.
But if you agree, we will still need human intelligence for some tasks, then in my experience it is best used as a generator, not reviewer and ideally unmolested by LLM Intelligence. The amount of creativity you should delegate is 0.
She's just arguing that most of the purposes of code reviews should be done before the typing part of coding instead of after. Identifying the best design before investing in typing / tokens.
Waterfall has to do with the size of the loop and when the customer gets to provide consumable feedback. She's not proposing changes to the size of that loop.
>If we want knowledge transfer, pair. Sitting next to someone, physically or virtually, while they reason through a problem teaches you far more than reading their completed solution afterwards.
>If we want junior engineers to learn how experienced engineers think, let them work with experienced engineers while they’re thinking. Pairing comes to mind again here, but teams could also do design sessions collectively with a whiteboard before they write (or instruct the agent to write) anything.
>If we want collective ownership, organise teams so people actually build and operate software collectively rather than relying on a pull request to tell everyone what somebody else has already built. For this again use pairing, mob programming, or team design sessions around whiteboard.
...
So in short, talk to people about decisions before you code (obvious advice, but plenty of shops don't do it) ... and replace all other functions of code review with pair programming!?!?
I mean, seriously, the answer to "what do we do with so much code to review" in this article is moronic! The vast vast majority of shops are not going to adopt Extreme Programming, and cut their velocity in half, by using twice as many programmers as they needed yesterday to get the same amount of work done!
The author frames the whole thing as an argument between her and some other guy, but I don't even know what the other guy's argument is (she left it out). Still, her argument so incredibly tone-deaf and awful, I'm definitely on his side.
I write a bunch of features. Most are pretty boring. A junior isn't going to learn much by pairing. But occasionally, I do big architecture changes. Those ones are perfect for early collaborative design, pairing, and discussion. The whole team benefits from understanding the architecture better and juniors get to see how seniors think about it. Then you can pair with juniors on the prompting or, more likely, the implementation plan to hand to the agents. That's maybe once a week.
True!
> and cut their velocity in half
That’s not how pair programming works.
also if pair programming means saving time on code reviews then that's a further increase in velocity.
AI is changing the game here not by increasing (or decreasing) the value of code, but by reducing its cost of ownership. When it's significantly cheaper to understand, modify, and replace code, the balance point shifts significantly. It's the definition of "maintainable" that's changing.
I didn't think this is a controversial take (except for some of the solutions proposed) design and high level implementation shouldnt be happening in code review. that's way to late in the process.
I review things that I know are "important".. but I've learned that there are many things that I don't care how it works at this point- they aren't critical in terms of I know it's not going to cascade and break other things (that's where us senior engineers know what to look for).
But there's no way in the hell I can review all the code that is being generated for so many things that just don't need reviewing. They work- that's honestly good enough for a lot of use cases. I review the code that touches sensitive areas and I know aren't very straightforward (which, I would put at only 10%).
This is a strawman. Who is writing code professionally without planning ahead?
> Perhaps that’s what AI is exposing. ... It worked, sort of, while humans could only produce code so quickly.
Huh? This doesn't make any sense to me either for the exact same reason. Are the kinds of people who always sucked at planning finally getting slightly better at it with AI? Is this a breakthrough for people with ADHD, or what? Do these people really like seeing lots of text scroll by so much that they can't have a few simple meetings?
I'm still confused what any of this is really about. To me it reads like another AI copout blog post. I want to understand the author's idea of a productive workflow.
Also we can get rid of that nurse keeping track of surgical instruments during a surgeries.
What's the big deal if a surgeon leaves a a scapel inside of someone?
This article flies so wildly in the face of good engineering and scientific practices it feels like a subtle troll post to get views.