dylan604 a day ago

I've never done official pair programming, but I get frustrated when I'm not on the keyboard as I find others think slower.

  • karmakaze a day ago

    I usually prefer to be navigator than driver. It's the navigator that does the high level thinking. The one at the keyboard is the one who's usually better at typing and writing out the design patterns that are agreed upon. Of course we did swap roles routinely, maybe several times a day. Oh and to top it off we switched pairing partners every week or two. It was a brutal experiment but I learned a lot and I'd say it was a great success.

  • kmoser a day ago

    Have you tried plugging in a second keyboard and taking over where necessary? I do a lot of remote work in which my colleague and I work on the same computer and it's quite useful for either of us to jump in with our own keyboard (and mouse). It does take a bit of occasional verbal negotiation to agree on who really knows what to do (and can do it fastest) but if you communicate well then it's pretty easy.

    • EagnaIonat 21 hours ago

      There is evidence that two people on the keyboard can increase productivity.

      https://www.youtube.com/watch?v=kl6rsi7BEtk

    • stevetron 13 hours ago

      What about an editor that is designed for multiple people to edit the same document? Tie the second keyboard, the second mouse, and a second cursor as resources together and independently edit?

      • el_benhameen 11 hours ago

        I do this, but with a second monitor and second machine, and then we use git to synchronize our work

    • bn-l a day ago

      Damn I wish I had a relationship with someone like that.

    • ustad 21 hours ago

      Can you say more about your setup? Does it require extra hardware/software?

      • kmoser 8 hours ago

        We're just using TeamViewer. I connect remotely to my colleague's computer while they are sitting in front of their keyboard.

    • karmakaze a day ago

      Right I only call using the same computer pair programming. Now working remote (with Tuple app) it's still two keyboards/mice on one computer (sometimes mine, sometimes theirs), though it's infrequent for specific tasks.

    • Waterluvian 21 hours ago

      The wildest thing I experienced once was this experimental “two cursors, two highlights, two clipboards” setup. I badly wish that had caught on. It was like Google Docs but Local Multiplayer.

      • karmakaze 7 hours ago

        I sometimes wish the separate clipboards could be turned off, or have a way of pasting from the other's clipboard.

      • konsalexee 9 hours ago

        If you enjoy Tuple, we just silently open-sourced Hopp (one of the maintainers here), we are still in Beta era, but would love some feedback!

      • goosejuice 11 hours ago

        Tuple.app does this. It's pricey but an excellent product.

    • godelski 8 hours ago

      Just a reminder for everyone, you can do this with tmux. So you could even just sit next to each other (or not) and be on your own machines.

  • saagarjha a day ago

    I find that working with people who are smarter than I am helps a lot with this.

  • globular-toast 11 hours ago

    I find the less dominant person just switches off, stops thinking and just becomes a keyboard with about 20x the latency and 10% the speed and accuracy.

  • glxxyz a day ago

    "no the other one, down a bit, no the one above, no go back..."

    • mrbombastic 11 hours ago

      Calling out explicit line numbers and zoom annotation tools help with this

  • exe34 12 hours ago

    for me it's not that I think faster, it's just that I will check 10 things really fast and exclude the "no it can't be there" things - because that's usually where it is. So if somebody else is holding the mouse and keyboard, I would then have to convince them that these things that they are convinced are fine need checking.

    I really hate this work of convincing them, because it's much faster to check it first and explain why it was a good idea later once I've fixed the problem.

cosmic_cheese a day ago

I think the only thing that might be more frustrating is if my modifier keys rotated at random intervals.

  • karmakaze a day ago

    Funny you should mention it. I have different computers with different keyboard layouts--including for some reason[0] modifier keys on only the left side being different on one.

    [0] That's the gaming PC I play StarCraft 2 on and I found it simpler to always leave it in one mode than switching back and forth.

CGamesPlay a day ago

I suspect that this would also lead to interruptions having almost no effect on your productivity.

  • wiseowise 19 hours ago

    Because it would be in the gutter in the first place?

jiggawatts a day ago

When pair programming was a fad in the early 2000s, I tried it with a coworker for a security-critical piece of code that needed two pairs of eyes on it.

It felt horrendously unproductive to have two people at one keyboard but we compared commit rates and the surprising result was that we produced the same rate of changes as working separately.

  • kaffekaka 20 hours ago

    Does this mean you as a pair were as productive as both of you individuals combined? Or that the pair was as productive as one individual?

    Pair programming is twice as expensive so it needs to be twice a productive (quality, LOC, whatever) to make sense I guess.

    • jiggawatts 19 hours ago

      Two of us at one keyboard were as productive as the two of us separately combined.

      I figured this was because typically while one person was coding the other would be researching. If you’re by yourself those are serial activities instead of parallel and the total workload is the same.

  • pydry 19 hours ago

    I find it is slightly slower (maybe 20%) than two individuals alone but the quality is quite a bit higher and the effect of this higher quality compounds over time (i.e. less tech debt -> fewer bugs, faster development on future code).

    Im quite credulous of Kent Beck's claim that when categorizing the last ~15 bugs on a project with pairs and singles he found that all 15 were in code merged by an individual rather than a pair.

    If it were an application you could just install I think everybody would use it. It demands psychological safety though, which most teams dont have, and is becoming less common these days.

    • tgaj 11 hours ago

      It's funny because it starts to be (an application you could just install) - AI agents could work as pair programming buddies.

andrei_says_ 11 hours ago

I’ve done pair programming for a short amount of time and found it stimulating and productive.

What specifically makes it painful for you?

  • phil21 4 hours ago

    Depends on what exactly you mean by pair programming. Two people sharing the same keyboard and screen and watching the other type is horror movie level stuff to me. I go from a competent typist at 140wpm or so, remembering at least some basic syntax, knowing the most common editor shortcuts etc. to a blubbering idiot 5 year old.

    Sharing an office where you can’t look at each others screen unless you walk over to help troubleshoot or design a specific feature is probably my favorite mode of work by far. Especially if it’s a small hyper-competent team with a diverse set of expertise but basic generalist knowledge to navigate the entire design at a high level.

    Being able to jump on a whiteboard with zero latency mid-debugging session (even trying to move to a spare conference room) is also great.

    This also lets you devise team communication in a way where you can signal you are in focus mode vs not and others can gauge the importance of their ask based on that signal and knowing precisely what everyone is actually working on that day.

    That said, the absolute worst possible way to collaborate is video conferencing and shared screens. Give me a shoulder hoverer over that any day.

  • kelnos 8 hours ago

    No the person you've replied to, but for me I just find it frustrating. When I'm not the one typing, I always find the other person moving slower than I can think, not entirely getting what I want to tell them ("no, line 47, not 53 -- no, the foobar function call isn't the problem, it's the 4th argument to barbaz... no no, no that one... GAH). Maybe we can chalk this up to "communication problems", and I should have taken a pause to talk about communication with my pair partner.

    I dunno. I've just always felt much less productive with someone else there. I don't view programming as a social or collaborative activity. Building software can be collaborative, but when I'm sitting down to do implementation, collaboration slows me down, and I find it very frustrating and unproductive.

atoav 19 hours ago

I one had quite good experiences with it, but the roles were very clear: he was the domain expert who knew how things should be handled and I was the person knowing the code and the processes. This way I didn't have to come up with potentially wrong handling of edge cases and he didn't have to mash his head against code he doesn't understand.

motbus3 19 hours ago

When I was on my 2x I wanted to do more programming. Now I just I want to me f let alone to finish my job

SJMG a day ago

Just wait till you learn about "mobbing"… You can feel the money being lit on fire.

bapak 16 hours ago

I pair program every day, my colleague is called Claude. Like you, I'm allergic to meat co-programmers.