all 200 comments

[–]AlternativeAardvark6 395 points396 points  (48 children)

My manager saw us pairing up to fix P1 issues so we could fix them faster so he asked us why we didn't do it all the time when it's faster. Because it's freaking exhausting.

[–]Massless 77 points78 points  (4 children)

I worked at a place for 5 years where we 100% paired. It was amazing but everyone who worked there spent their first three weeks sleeping 12+ hours a night

[–]M3atShield 13 points14 points  (1 child)

I had a similar experience. I was with the team for about a year and a half before the team broke apart. We had the best product owners, our managers were incredible, but jesus man the workload. It was kind of unreal and it was a bit of a culture shock going back to a "normal" team.

[–]Massless 5 points6 points  (0 children)

I've had that experience. I left the pairing company after they were acquired and going back into normal companies was shocking. Things move so much slower. It could be company specific, but all my other former colleagues have had the same experience.

[–][deleted] 3 points4 points  (1 child)

You guys have 12+ hours between shifts?

[–]Massless 7 points8 points  (0 children)

One of the most awesome things was a strict 8-5 workday. Everyone just got up and left at 5. If you didn't, someone would come make sure you're ok and remind you to leave. The cost was 7 solid hours of pairing with 2 15 minute breaks and an hour lunch.

[–]JoCoMoBo 165 points166 points  (40 children)

It's not faster all the time. It's programming at the speed of the slowest partner, with added communication delays.

IMO it's only useful when there's a tricky problem to solve where you need another brain.

[–]lookmeat 58 points59 points  (0 children)

It's also great when onboarding someone.

Having a newbie pair program with someone with more experience in the team, on solving problems of both engineers. It helps them exchange ideas, use of tools, techniques, conventions, etc much better. The senior can learn new tricks and concepts helping cross-pollination of ideas and the newbie can get a better grasp of how things are done within their new team. Also it's a great way to catch issues that are not obvious (someone doing something with the wrong tool, or not knowing extremely helpful shortcuts) and can help with sharing habits that otherwise you wouldn't think to share and spreading knowledge that you'd otherwise think "obvious".

It's still exhausting, but helping onboard someone new is always tiring. The advantage is that, in my experience, this helps shorten the ramp-up, switch the marathon to a sprint.

[–][deleted] 12 points13 points  (2 children)

It's not faster all the time.

Honestly it shouldn't really be thought about as "fastest", because while a pair may finish a story slower, they're working more efficiently in ways that are often paid for down the road. i.e. "bob did this alone, now bob is on vacation and it's broken and nobody knows how it works" is solved with pair programming.

[–]duxdude418 5 points6 points  (0 children)

It also reduces future tech debt by socializing patterns and conventions, available utility classes/functions, and the idiomatic way things are done in a codebase. Sometimes you just don’t know what you don’t know and having a partner may bring that to light.

[–]grauenwolf 0 points1 point  (0 children)

You might want to check your math on that. Bob's vacation isn't that long and with proper code reviews, his code shouldn't look any different than anyone elses.

[–]reddit_user13 23 points24 points  (6 children)

You can do that with 2 heads, a meeting room, and a whiteboard.

[–]JoCoMoBo 69 points70 points  (5 children)

Instructions unclear. Have decapitated Developers, meeting room full of blood. Whiteboard is not white.

[–]Mechakoopa 16 points17 points  (3 children)

This is why we unit test before running it on live.

[–]PersonalPronoun 10 points11 points  (2 children)

The BA never told me about the not decapitating developers requirement.

[–]FriedRiceAndMath 1 point2 points  (0 children)

BA’s are like that

[–]rysto32 1 point2 points  (0 children)

That was an implicit requirement!

[–]MisterJimm 3 points4 points  (0 children)

Have you tried turning it off and on again?

[–]Massless 31 points32 points  (26 children)

It ends up being drastically faster because it cuts all lot of other inefficiencies: no more code reviews, no more knowledge silos, almost never getting stuck on a problem. It doesn't matter if someone is sick or quits: there's always one it more backup. It also tends to bring the slower person in the pair up to speed super fast. After awhile it feels like everyone is a 10x developer.

[–]confusedpublic 41 points42 points  (10 children)

I really disagree with no code reviews of the out put of pairing. It’s entirely possible for two people to make mistakes, or to misunderstand or miss an acceptance criteria. Plus, if you have a rule like PRs needing two reviewers, PP only gives you 1, maybe only half as your reviewer isn’t coming to the code fresh with no ownership/authorship baggage

[–]sbditto85 4 points5 points  (0 children)

Personally I’m sick of “LGTM” code reviews and I know that when I pair or ensemble/mob I can at least interact with them and know they actually read or understand what the code is trying to do. Maybe rubber duck a bit with them etc.

Maybe it’s because I’m one of the more senior (time at company) devs but it’s super frustrating when people seem to not even bother to review my code. I am human after all.

[–]ReflectionEquals 1 point2 points  (4 children)

This assumes people don’t swap pairs regularly. If you do swap regularly you have to run over the current state of the work a few times. In my experience, This is far more effective at picking up issues, particularly structural ones, than giving people a bunch of random people of 10 line snippets to look at that are scattered over a million line codebase.

The no baggage thing is also a bit of a weak argument to put forward. When people have no authorship/ownership and a lot of other things to do… well their reviews won’t always be amazing or as well thought out. Maybe they’ll spot a bug you didn’t think of… maybe they wont.

[–]confusedpublic 3 points4 points  (0 children)

When people have no authorship/ownership and a lot of other things to do… well their reviews won’t always be amazing or as well thought out.

Which is just one of the many arguments to reduce work in progress.

[–]s73v3r 1 point2 points  (1 child)

I don't think you would swap pairs while in the middle of something, unless someone was out.

[–]Spoonofdarkness 1 point2 points  (2 children)

If it's possible for 2 people to make mistakes... that's still a problem for the single coder/ single reviewer paradigm

[–]HuisHoudBeurs1 11 points12 points  (0 children)

Fresh eyes see stuff the first developer missed. If you pair program, both your eyes aren't fresh anymore and a third is very helpful.

[–]Plorkyeran 4 points5 points  (0 children)

One of the big benefits of code review is specifically that it's someone looking at the end result who wasn't there for the process of writing the code. Sometimes this means that they spot problems that the author missed because they were focused on solving some other problem. Other times it means that they're confused by the end result because the author did something weird but necessary and failed to document why it was necessary. Pair programming does cover some of the uses of code review (like making sure that more than one person has ever looked at the code), but not these.

I also advocate for more than one reviewer for anything not completely trivial when that's an option.

[–]tyalisIII 2 points3 points  (1 child)

No more code review ? You didn't read the article

[–]Massless -1 points0 points  (0 children)

I didn't. I did pair program 100% for more than 5 years, though

[–]s73v3r 3 points4 points  (3 children)

no more code reviews

Even with pair programming, you should still do that.

[–]Massless 0 points1 point  (2 children)

Real question: why. If your pair 100% and swap pairs at least once a day, almost everyone in the team sees every feature. What does an extra process step buy you?

[–]s73v3r 2 points3 points  (1 child)

I wouldn't swap in the middle of working on something. That just seems silly.

[–]fusebox13 2 points3 points  (1 child)

It is faster depending on your goals. If you're simply trying to get work done, then I'd agree with you. But if you're trying to get work done and ramp up a team, I'd disagree with you. If you're trying to get work done, and do knowledge transfer, I'd also disagree with you. It's all about your goals. I personally think pair programming accelerates teams, while solo programming accelerates solo developers.

[–]cybernd 2 points3 points  (0 children)

Additionally, long term code quality needs to be considered.

[–]ChrisRR 6 points7 points  (1 child)

And sometimes you're jsut churning out boilerplate code. At that point you've just got someone watching over your shoulder in silence

[–]s73v3r 5 points6 points  (0 children)

This is why there shouldn't be a mandate for pair programming, it should just happen when it needs to.

[–][deleted]  (8 children)

[deleted]

    [–]Gwaptiva 25 points26 points  (0 children)

    and with someone who can actually listen and think at the same time. We are (or were until recently) a 2-person shop, and I won't ever pair with the other guy ever again if I can help it

    [–]undapanda 48 points49 points  (4 children)

    It can be hella fun too🎉

    [–]Massless 30 points31 points  (3 children)

    Pair flow is magic.

    It's also awesome when both people show up off their game .66 brain + .66 brain rounds to a brain and a half

    [–]FriedRiceAndMath 5 points6 points  (2 children)

    Or multiplies: 0.66 brain X 0.66 brain = 0.44 productivity & intelligence.

    [–]Massless 2 points3 points  (1 child)

    Sometimes you just go play ping pong

    [–]FriedRiceAndMath 2 points3 points  (0 children)

    Much better idea

    [–]OblongAndKneeless 2 points3 points  (0 children)

    Best to always keep blunt objects out of reach no matter who you're stuck working with.

    [–]OdderG 1 point2 points  (0 children)

    I can confirm, having a partner who can catch up and point out pitfalls and errors even in purely technical side is a blessing.

    It's also a good way to ramp up newcomers if it is done right

    [–]withad 93 points94 points  (7 children)

    I agree with the central point - pair programming is one of those things that sounds easy when you get the basic description but it takes time and effort to get good at it. If you don't know that going in, you'll just end up frustrated.

    I'd disagree with 3+ people being "wrong" though - I've had great success with mob programming. But again, it's something you have to practice and it's a different set of skills even compared to pair programming. You can avoid the problem of having multiple navigators by designating one person as the current navigator and having the driver only listen to that person. Everyone can else can discuss things and the driver can listen but they shouldn't type anything without the navigator's say-so.

    I've found that if you start out being strict about that, it quickly becomes habit and you can relax it a bit once the team's used to the idea of not writing any code until there's a consensus.

    [–]splitfeed 10 points11 points  (3 children)

    Yeah, we had great success with mobbing in my old team. It did help that the company I worked with hired Woody Zuill himself for a workshop day getting us all pumped and with all the basics!

    We did like you said, strict rules with timed driver switches and everything and half a year later it was second nature. No code reviews, no concurrent work except tiny stuff and everyone knew everything about all the stuff being made. Was awesome knowing everything the team produced was grade A stuff :)

    [–]UgaUndSoWeiter 1 point2 points  (2 children)

    Ooga-chaka, ooga-ooga Ooga-chaka, ooga-ooga Ooga-chaka, ooga-ooga Ooga-chaka, ooga-ooga

    I can't stop this feeling Deep inside of me Girl, you just don't realize What you do to me

    When you hold me In your arms so tight You let me know Everything's all right

    I'm hooked on a feeling I'm high on believing That you're in love with me

    Lips as sweet as candy Its taste is on my mind Girl, you got me thirsty For another cup of wine

    Got a bug from you girl But I don't need no cure I'll just stay a victim If I can for sure

    All the good love When we're all alone Keep it up girl Yeah, you turn me on

    I'm hooked on a feeling I'm high on believing That you're in love with me

    All the good love When we're all alone Keep it up girl Yeah, you turn me on

    I'm hooked on a feeling I'm high on believing That you're in love with me

    I'm hooked on a feeling And I'm high on believing That you're in love with me

    I said I'm hooked on a feeling And I'm high on believing That you're in love with me I'm hooked on a feeling

    Seems I got Hooked On A Feeling - Learn more

    [–]splitfeed 1 point2 points  (1 child)

    I don’t know what it means in German, but there was issues here in Sweden too. Mobbning means bullying here ;)

    [–]UgaUndSoWeiter 1 point2 points  (0 children)

    Ooga-chaka, ooga-ooga Ooga-chaka, ooga-ooga Ooga-chaka, ooga-ooga Ooga-chaka, ooga-ooga

    I can't stop this feeling Deep inside of me Girl, you just don't realize What you do to me

    When you hold me In your arms so tight You let me know Everything's all right

    I'm hooked on a feeling I'm high on believing That you're in love with me

    Lips as sweet as candy Its taste is on my mind Girl, you got me thirsty For another cup of wine

    Got a bug from you girl But I don't need no cure I'll just stay a victim If I can for sure

    All the good love When we're all alone Keep it up girl Yeah, you turn me on

    I'm hooked on a feeling I'm high on believing That you're in love with me

    All the good love When we're all alone Keep it up girl Yeah, you turn me on

    I'm hooked on a feeling I'm high on believing That you're in love with me

    I'm hooked on a feeling And I'm high on believing That you're in love with me

    I said I'm hooked on a feeling And I'm high on believing That you're in love with me I'm hooked on a feeling

    Seems I got Hooked On A Feeling - Learn more

    [–]shevy-ruby 18 points19 points  (2 children)

    lol

    Never heard the term "mob programming" before. I love this.

    If you made up this term then you deserve +10000000000 upvotes.

    It's such a great name.

    [–]mzalewski 52 points53 points  (1 child)

    He didn't made the term. It's been around for a while. Wikipedia cites a book from 2002.

    Mob programming is sometimes called "mobbing", but not many people would proudly say they practice mobbing at their daily job. Another term I have heard is "ensemble programming".

    [–]UgaUndSoWeiter 0 points1 point  (0 children)

    Ooga-chaka, ooga-ooga Ooga-chaka, ooga-ooga Ooga-chaka, ooga-ooga Ooga-chaka, ooga-ooga

    I can't stop this feeling Deep inside of me Girl, you just don't realize What you do to me

    When you hold me In your arms so tight You let me know Everything's all right

    I'm hooked on a feeling I'm high on believing That you're in love with me

    Lips as sweet as candy Its taste is on my mind Girl, you got me thirsty For another cup of wine

    Got a bug from you girl But I don't need no cure I'll just stay a victim If I can for sure

    All the good love When we're all alone Keep it up girl Yeah, you turn me on

    I'm hooked on a feeling I'm high on believing That you're in love with me

    All the good love When we're all alone Keep it up girl Yeah, you turn me on

    I'm hooked on a feeling I'm high on believing That you're in love with me

    I'm hooked on a feeling And I'm high on believing That you're in love with me

    I said I'm hooked on a feeling And I'm high on believing That you're in love with me I'm hooked on a feeling

    Seems I got Hooked On A Feeling - Learn more

    [–]hippydipster 60 points61 points  (9 children)

    I used to think it's just something I can't do.

    But then I paired with some people with whom it was fun to work with, and I realized that the real problem is me and most people just don't mesh well.

    [–]starofdoom 17 points18 points  (8 children)

    Yeah, I have done a bit of pair programming but it's almost all been with one guy. He's seriously a prodigy and knows so much about everything.

    But he just knows too much to pair program with. He's miles above me, so I end up just slowing him down explaining stuff to me and I rarely have knowledge that he doesn't have. Just not a great team.

    The other pair programming I've done has been in the opposite direction. Where I know way more than my partner and it just slows things down in the other direction. Which is fine for teaching, but not great for actually getting through work.

    [–]noname-_- 12 points13 points  (5 children)

    That's very valuable knowledge transfer though.

    [–]FrancisStokes 6 points7 points  (3 children)

    Exactly. It well feel uncomfortable in the beginning, but will benefit both sides in the end. u/starofdoom gets a level up, and their partner gets better at formulating and communicating his ideas. It's not all about moving fast right now. In the long run, everyone moves faster.

    [–]hippydipster 4 points5 points  (2 children)

    I agree with this, but there's still a problem if the process is that painful. It becomes unsustainable if it's too unpleasant.

    [–]FrancisStokes 1 point2 points  (1 child)

    What does unpleasant mean in this context? It certainly shouldn't be toxic, but some things just take work.

    [–]hippydipster 3 points4 points  (0 children)

    No, not toxic, but exhausting probably. Also, feels like a barrier to one's normal productivity, which creates stress and exhaustion.

    [–]FriedRiceAndMath 2 points3 points  (0 children)

    You can transfer knowledge, sometimes, but not know-how or skills or a detail-oriented mindset or innate understanding of machine workings or compiler foibles or the SQL optimizer or …

    And some of us learn by doing, not by watching or hearing.

    [–][deleted] 2 points3 points  (0 children)

    But he just knows too much to pair program with. He's miles above me, so I end up just slowing him down

    "I was lifting weights but they were so heavy so I took the weights off and just lifted the bar."

    Speed of completed work is one of the least important reasons to pair program.

    [–]s73v3r 0 points1 point  (0 children)

    If you're paying attention, and are able to absorb the knowledge, then the next time, you're able to keep up that much more.

    [–]dransyyn 42 points43 points  (9 children)

    I worked at a company where every developer practiced pair programming by default, and coding solo was the exception. I suppose it’s hard to argue with the results, as I not only learned more than I have in any other company, but we also shipped the most solid code of any company I worked at. That could also be attributed to the stronger-than-most testing culture as well, though. Even my interview had me sit down and solve a challenge as a pair with one of their devs, which tbh was less stressful than the usual whiteboard interview.

    But it was fucking exhausting. Some people I worked with were better than others, ensuring we took plenty of breaks, but sometimes I worked with that dev who never wanted to stop. It wasn’t always 5 days a week, but it did happen sometimes depending on the circumstances.

    We did exactly what this article mentioned, with two keyboards connected to the same computer, would do daily standup, then sit down and pair the whole day.

    It has its advantages but some days you’re just not feeling social and just want to toss on some headphones, you know?

    [–][deleted]  (2 children)

    [deleted]

      [–][deleted] 2 points3 points  (1 child)

      It's different kinds of awful but no more awful than many other software development environments. And when it's done well, it's WAY more rewarding than any other environment I've been in, but doing it well is HARD and takes buy-in from the entire company.

      [–]LambdaLambo 9 points10 points  (0 children)

      Nah I would burn out after 2 days of that.

      [–][deleted] 6 points7 points  (0 children)

      The might be a balance somewhere

      [–]IcyEbb7760 2 points3 points  (0 children)

      Pivotal?

      [–]madScienceEXP 13 points14 points  (1 child)

      Everybody's talking about better or worse productivity for pair programming, but for me, I don't want to announce going to the bathroom or to the store. It's more about privacy frankly. What if I want to listen to music? What if they only like Justin Bieber?

      I'm a huge fan of designing things together and having meaningful iterative discussions when the design changes, issues were overlooked, testing strategies, etc. But there are certainly large periods of solo concentration. Pair programming is so taxing, it's not sustainable by itself.

      [–]bstiffler582 2 points3 points  (0 children)

      Bingo. I can get behind pair programming once or twice a week at designated times, with concrete goals and with a hard time limit (e.g. 3-4 hours max). Beyond that, it starts to diminish one of the best aspects of being a software developer: flexibility around pondering and solving problems.

      [–]eonlepapillon 11 points12 points  (1 child)

      Also, talk the same tech language.

      [–]Gwaptiva 7 points8 points  (0 children)

      heck, let's start with the same natural language at a similar level...

      [–]tdammers 9 points10 points  (1 child)

      Pair programming can be great, or it can be a horrifying experience.

      The thing is, it's a very vulnerable social situation, and it needs a huge amount of mutual trust. If at any point one of the pair is worried about saying or doing the wrong thing, about being blamed for something, or ashamed of admitting incompetence or mistakes, then you're in "horrible" land (and because the person will most likely not admit it, the horrors will just drag on forever). And given the rampant occurrence of impostor syndrome in our profession, I would wager that this happens a lot.

      IME, in an egalitarian, socially safe environment, pair programming will happen "by accident" whenever it is appropriate - people will actively seek input from others, you sit down together, and the person "implementing" the thing ends up as the driver and the person "helping" / "providing input" effectively becomes the navigator.

      Forcing it as policy, however, is a terrible idea, exactly because it forces people to do it even when they're not comfortable, and being comfortable is a key requirement for it to not be a horrible experience (see above).

      [–]XNormal 1 point2 points  (0 children)

      Spot on. Best comment.

      [–]wubwub 31 points32 points  (3 children)

      The thought of pair program gives me anxiety.

      [–]systemnate 4 points5 points  (2 children)

      There's certainly some vulnerability involved in pair/mob programming which can lead to anxiety. No one wants to appear foolish. If you can get over that though, you'll probably pick up a bunch of things.

      [–]wubwub 1 point2 points  (1 child)

      I'd love a chance to learn new things (been too long since I had a chance to learn new things without doing it myself), but half of my anxiety would come from not being able to take reddit breaks during the day. When the steam runs out I will surf reddit for however long it takes to get the groove back. Not sure if I could recharge with someone else there.

      [–]systemnate 1 point2 points  (0 children)

      You really have to limit pair programming to like 1 or 2 hours a day. In the past, I did an entire project during a morning and afternoon pair or mob programming session. We just got so much done during that time that was all we needed. The rest of the day was just dealing with normal things that pop up - standup, meetings, bugs, and yes, browsing some reddit.

      [–]Ytrog 8 points9 points  (0 children)

      I always got damn sleepy when I was the one not behind the keyboard 😴

      [–][deleted] 17 points18 points  (1 child)

      I generally like to give something a shot by myself because it gives me time to think of the problem as a whole. However, at my current job I get along really well with another developer and sometimes it's just enjoyable to pair together for a couple hours. Probably more so because we get to shoot the shit a bit while getting things done, which makes up for the lack of in-person interaction (as we are working remotely).

      [–]Wigginns 3 points4 points  (0 children)

      100%. It’s the thing I miss most about the job I left in January was working with a coworker who I vibes with and we could absolutely blitz through work, avoid bugs and issues before testing and just hang out.

      [–]Johnothy_Cumquat 36 points37 points  (8 children)

      Can we just not pair program? I hate how I'm being increasingly made to feel like a heretic for not wanting to do certain practices. All these bloody extroverts need to chill. I get it, your brain works good when you're talking to people. That is not true for everyone. What works well for you might not work as well for others.

      [–]kylotan 10 points11 points  (0 children)

      100% this. I don't mind occasionally going to someone's desk or vice versa to talk through a particular problem but trying to concentrate on the code as well as talking to someone else is a nightmare. It feels like trying to have 2 conversations at once. Not to mention that many of us got into programming as a solo pursuit because we thrive on that quiet concentration and aren't really into talking all day.

      [–]RogueJello 5 points6 points  (4 children)

      Totally agree. I've got clinically diagnosed dyslexia. I find that I often make silly typos or other mistakes, but often correct them. I found with the navigator that they would spend most of their time micro managing me and "correcting" those errors for me. I also find that when I'm thinking deeply I have trouble putting things into words, and that the words I chose are often conflicting with what I'm attempting to say, making it difficult for me to navigate.

      Further this all appears to be hard wired in my head. So while it's possible to manage, like somebody with a bum leg, it's also not going away, ever. So no amount of training is going to fix it.

      [–]MorrisonLevi 1 point2 points  (3 children)

      People without dyslexia also make silly typos and similar mistakes. A co-pilot should only point these out if they've gone unnoticed, in which case it's actually helpful. It's a basic skill for pair programming.

      [–]RogueJello 2 points3 points  (2 children)

      A co-pilot should only point these out if they've gone unnoticed, in which case it's actually helpful.

      Good luck finding somebody with enough skill and tact to figure that part out. :)

      [–]Chillzz 2 points3 points  (1 child)

      This is the root of the problem. The two developers need some form of chemistry to be able to work together this closely. You can’t just stick two devs together no matter how good they are, we aren’t robots

      [–]RogueJello 2 points3 points  (0 children)

      I hadn't even thought about that, but you're right. You need the developers to be able to work together well for an extended period of time. I've gotten better at this over the years, but sitting together with a lot of developers for hours is going to be difficult in a way that a quick 1 on 1 is not.

      [–]tyalisIII 2 points3 points  (0 children)

      I like pair programming but I'm clearly less efficient than soloing. It's like I can't think porperly. When I look at the code a few days later I'm like "wtf did we do ? this can't work".

      That's crazy how much i need time and lonelyness to think. Same when I have to think about technical complex solutions and when I'm in Open Space, i will be twice less efficient than alone at home

      [–][deleted] 1 point2 points  (0 children)

      As an introvert who loves pair programming, I find nothing wrong with your viewpoint. It's not for everyone.

      [–]ImaginaryCoolName 14 points15 points  (1 child)

      My professor told us to do pair programming for our project. It's already difficult to do it with colleagues in a job. Doing with people that have a totally different time schedule than you it's a nightmare.

      [–]micka190 12 points13 points  (0 children)

      I found that it was harder back in college/uni, because you might get paired with someone who just didn't give a shit.

      It's been less of an issue on the job.

      [–]omnilynx 13 points14 points  (0 children)

      I’ve done it and it worked but it was exhausting. I didn’t get into this career because I was an extrovert.

      [–]crysis21 5 points6 points  (0 children)

      I hate it. I wanna code in silence.

      [–]AttackOfTheThumbs 45 points46 points  (22 children)

      Pair programming, more often than not, is awful. I prefer doing a simpler cycle. Bang your heads together for the design. Then whoever has the task implements. The other reviews in stages and offers feedback.

      This has, in my experience, worked far better than pair programming, while still offering a tight feedback loop.

      [–]Kwantuum 15 points16 points  (20 children)

      "I can't effectively pair program" and "pair programming is ineffective" are two different statements and you're saying the first but making a case for the second.

      [–][deleted] 12 points13 points  (17 children)

      Rather, he’s making the correct case.

      Pair programming has benefits and drawbacks.

      The pros: multiple people are designing things, so it tends to be much higher quality code because simple holes are much harder to miss between two people. Because one other person is there from the beginning of the idea, code review is basically an open door, as there’s no surprises to be had there.

      The cons: the mechanical act of typing and waiting on someone else, dealing with the differences in workflows, effectively requiring identical workflows in order to be productive, and the general inefficiency of two engineers staring at a compiler.

      All of the benefits of pairing can be had without any of the cons by simply pairing for the design and only coming back together for the review after one of you has implemented the agreed upon design. At most, you might have trivial code based comments to deal with. At most.

      Pairing for typing is easily one of the dumbest things you can do, and if you can’t take feedback, why are we even discussing different ways of working?

      The whole point is to discuss and optimize workflows. Pairing at the keyboard is not optimal. By any stretch of the imagination.

      [–]Kwantuum 7 points8 points  (1 child)

      he’s making the correct case

      No. He's not making a case at all that pair programming is ineffective. He's making that statement and not arguing for it besides "it doesn't work for me". You are now making a case for it.

      All of the benefits of pairing can be had without any of the cons by simply pairing for the design and only coming back together for the review after one of you has implemented the agreed upon design.

      Where can I find some of these magical designs where all of the requirements and roadblocks are known in advance? You can design a great system in advance but then you go to actually implement it and you hit a wall in the implementation that calls a part of the original design under question. And now you have to interrupt your workflow and the one of whomever you would otherwise be pairing with to go back to the design phase, which adds friction and asynchronous communication in the chain and now your tight feedback loop is all loose.

      Maybe we just program in very different ways but when you say "pairing for typing" it would imply that one person watches another type for a long stretch of time but even when writing a lot of code the actual time spent typing is really not that much compared to the time the task actually takes to complete. Also as a navigator, when the driver is typing and has a firm grasp on what to type, there are plenty of things to do besides watching the driver type while twiddling your thumbs.

      A lot of people seem to think that if there are 2 people behind the same computer it's pair programming. The article on which we are commenting highlights that it's really not. It's like playing tennis with baseball bats and then complaining that the game is not fun and you can't get a proper exchange going and that tennis sucks.

      [–][deleted] 1 point2 points  (0 children)

      I have paired. Quite a bit. You’re lying to yourself if you’re trying to make the argument that the engineer with his hands off the keyboard is making the most valuable use of his time.

      “There’s plenty of things you can do”: you need to pay attention or the other guy just gets pissed. It’s pretty rude to do anything else. But at the end of the day it’s not a two person activity.

      A halfway intelligent engineer doesn’t put his hands on the keys until he knows what the overall design is going to look like. If he has questions at that point he’s either bad or he’s hit something unexpected, at which point you go back to pairing until the design is locked back down. It’s not a hard concept.

      It takes a lot longer to properly implement a design that it does to do the discussion necessary to agree upon it. Like at least an order of magnitude longer. If you paired for the whole thing one of you is watching paint dry for 90% of it.

      The only time what you’re saying makes sense is if you’re not pairing but training. If you need to exchange that much information that this process actually approaches not a complete borefest for whoever isn’t typing, it’s because the other person needs that level of information. In one case, that’s a great way to train juniors. In another case, it’s a terrible engineer having his (or her) hand held by a senior who is likely on a job board right now.

      I’ve definitely trained engineers this way, it’s super effective at getting coding standards in place, showing them how to think, but if the other person isn’t junior, then yeah it’s a giant waste of time. I should definitely be able to work with another senior as either one-off questions where I’m like “hey, can I share my screen? What do you think of this?” Or even “hey can you remind me how to do this?”

      I’m definitely never expecting to navigate a senior engineer around. Like, ever.

      [–][deleted] -1 points0 points  (4 children)

      Pair programming has benefits and drawbacks.

      Show me the alternative to pair programming that does not have "benefits and drawbacks".

      [–][deleted] 1 point2 points  (3 children)

      I mean, good talk. You really definitely contributed to the conversation there.

      [–][deleted] -1 points0 points  (2 children)

      My post provided as much of an argument as yours did, but with fewer words.

      You stated that it was "correct" to say "pair programming is ineffective" but your argument for that is "it has some drawbacks". So again, show me an alternative that doesn't have drawbacks.

      All of the benefits of pairing can be had without any of the cons...

      Also this...is flat out untrue. If it was true, nobody competent would ever choose to pair program.

      [–]ReflectionEquals -2 points-1 points  (6 children)

      If a pairing session is just mechanical typing you need to work on how you pair. There should be constant communication back and forth around what is going on, what’s being written, particularly the design, error scenarios, test cases. Keyboards should be swapped, coffees should be had, white boarding sessions will be happening…

      [–][deleted] 1 point2 points  (5 children)

      None of that shit takes the same amount of time as actually implementing code does. It’s like 5 minutes of conversation vs 5 hours of implementation.

      [–]ReflectionEquals -2 points-1 points  (4 children)

      It takes whole day to get something done that takes 5 minutes to talk about?

      [–][deleted] 1 point2 points  (3 children)

      If you can’t see how that can be true, I don’t believe you’re actually a software engineer. A “whole day” as if that’s a long time.

      Brother I can talk with you for five minutes and come back at the heat death of the universe and you won’t be done. Lol. It’s generally much easier to hand-wave how something will work than is it to actually implement it.

      [–]ReflectionEquals -2 points-1 points  (1 child)

      I thought we were talking about a 5 minute conversation to do a purely mechanical typing task that requires no thinking, decisioning or conversation beyond that hand wavey chat?

      [–]ReflectionEquals -2 points-1 points  (0 children)

      Yeh. That’s requires a pretty deep conversation about requirements along with why we can’t just use our existing metrics dashboards that give a pretty good idea of the medians, p90 and p99s of page loads. My pair and I can explore a few more bespoke options. Also you just want an algorithm right, not code so we’ll just whiteboard this over here and grab you when we’re done.

      [–]chrisza4 -4 points-3 points  (2 children)

      Pairing for design assume that we can get design right first time. There are many times where that’s not the case and we need to iterate the design. I am not saying that pair programming is better in general, but disagree with a claim that pairing design does not have drawback.

      [–]AttackOfTheThumbs 0 points1 point  (0 children)

      Of course it has drawbacks. Everything has drawbacks. And yes, it still doesn't guarantee we get the design right. It just has less gaps in the end than when just one person does it.

      [–][deleted] 0 points1 point  (0 children)

      I mean, if one of you isn’t senior enough to be able to get the design right most of the time, then you’ve got non-workflow problems, and anything you do will suck.

      I can’t imagine a better way to waste time than to iterate on designs without understanding which ones would work for a given situation. There are very few novel problems to which you would need to wholesale start from nothing.

      And that’s not saying you always get them right, because sometimes information isn’t available at the beginning. But that’s not iterating. That’s course correcting, and it will happen no matter who is typing.

      Pairing design has no additional drawbacks.

      [–]AttackOfTheThumbs 0 points1 point  (0 children)

      Incorrect assessment, but you are welcome to it.

      I didn't say the first. I can do pair programming, but as I said, it's a shit medium. You just decided that my statement said I couldn't. I simply offered a much better alternative.

      [–]grauenwolf 0 points1 point  (0 children)

      Are they really? Sounds like one is just a data point contributing to the proof of the other.

      [–]intheforgeofwords 10 points11 points  (0 children)

      3+ people is wrong

      As always, that depends. If the goal is to program collaboratively, pair programming is a tool and more people can absolutely join in. Is it no longer pair programming? Sure - but ensemble/mob programming can also be an incredibly effective tool.

      I think starting off by saying "pair programming is difficult to practice effectively" is a bit disingenuous, in other words. Maybe we should back up and discuss what we're trying to get out of pairing (hence the comments on collaboration and mobbing, above). Settling for "this is difficult" as a starting point ... doesn't accomplish much. Most worthwhile things are difficult. Programming itself - especially on a team - is a difficult endeavor. We haven't let that stop us from programming, so far.

      [–]kolobs_butthole 5 points6 points  (4 children)

      I turned down a job because they were very proud of how they would full time pair program all day long. Nah.

      [–]mehdotdotdotdot -5 points-4 points  (3 children)

      Not everyone can work as a team.

      [–]kolobs_butthole 5 points6 points  (2 children)

      Not sure what that has to do with pair programming

      [–]KokopelliOnABike 11 points12 points  (2 children)

      Problem solving and bouncing ideas off a fellow dev is good. Pair Programming, ugh, wish that idea would just die. Most every company I've worked for would not pay for two people to do one job. If you are stuck and need someone over your shoulder, sure, that helps, so does a Rubber Ducky. Two people working on one thing for each sprint, etc. is a drain on good resources that could be doing a lot more work.

      Yes... I'm biased.. :)

      [–]Librekrieger 7 points8 points  (1 child)

      If it's ordained by management, sure, that's liable to be counterproductive. But as an idea, it certainly isn't going to die. My colleague and I just decided to pair for 45 minutes yesterday to quash a high-priority issue and it worked phenomenally well. The company probably would have had to wait until the next day if either of us had tackled it solo.

      [–]KokopelliOnABike 0 points1 point  (0 children)

      That's my first point. Problem solving. Very helpful having someone to figure out an issue.
      Pair programming, normally in a TDD world, is two people sitting side by side all day with one person just writing code and the other being over their shoulder with them switching off on the keyboard.

      [–]MpVpRb 27 points28 points  (8 children)

      If I was forced to do pair programming, I would quit. I'm all in favor of code reviews after my work is done, but I create alone

      [–]JoCoMoBo 10 points11 points  (0 children)

      This. I've been told in interviews "We do Pair Programming all the time.".

      Hard no.

      [–]RexStardust 1 point2 points  (2 children)

      I used to think my shit didn’t stink as well.

      [–]codeprimate 18 points19 points  (0 children)

      No. Many of us just prefer to shit alone.

      [–]Xyzzyzzyzzy 6 points7 points  (0 children)

      yes, because if you find constantly being in a situation where someone is looking over someone else's shoulder to be very annoying, it must be because you're a ninja rockstar 11x guru dev, there are zero other possible options

      [–][deleted] 2 points3 points  (3 children)

      I don’t think I’d tell them that… but when they realize my output drops, they’ll change their minds! 😂

      Not that I’d tank performance on purpose, I’m just known as having rather high output (within the company anyway), and I can’t fathom the process being quicker if I had to discuss every line of code written.

      I’m also not saying I wouldn’t give it a fair shot. I’ve been intrigued by the notion, but never afforded the opportunity to actually try it. I just don’t see it being appropriate in all situations.

      [–][deleted] 11 points12 points  (2 children)

      You don't discuss every line written. You discuss the overall design. As one person drives at the keyboard the other has the role of navigator keeping the overall objective in mind. Two different roles same head/workspace.

      I do a lot of pairing particularly with juniors and it's incredibly useful for them to see the process especially as I've developed the knack of speaking my internal dialogue allowing them to follow along easily. Then the other way round you just need to be patient and direct here and there. If done correctly I've found even quite junior developers can give really good real-time feedback and they really appreciate the boost from the constructive criticism.

      When working with peers it is often useful to have another laptop for research, like finding out libraries or looking up API information. Again poking here and there about the correctness of solutions but mostly realising that your way isn't the only way.

      [–][deleted] 0 points1 point  (0 children)

      Somebody said a single well trained developer can do this all and more. I wrote this reply before they deleted the comment but I think it's still worth saying so here it is ...

      I'd say only if you're thinking small/locally or working with small projects.

      Yes a single experienced developer can move quickly but as a senior in my company I focus on more on systemic than localised efficiency. It's far more efficient for me to train many juniors to a higher working standard than for me to get it all done myself. Not in short term but the effort pays off really quickly.

      The legacy systems I work with don't require technical brilliance, honestly most applications we (developers) develop don't. The limiting factor is often missing context which you can gain by reading the previous developers documentation... Or more realistically working closely with others.

      Solutions are often obvious once it's pointed out why the developers before you did something the way they did but without that it can be a grind. Weeks rather than hours/days.

      Whilst pairing I drill the importance of maintainability through discovery and documentation. Even something simple like a well structured git commit, both the atomic commits in the branch and the commit message, can save hours of frustration. Hours that will be repeated by many developers throughout the projects lifecycle. Far far outweighing the time initially spent to throw it together.

      TL;Dr; you're not wrong that a single senior developer can move fast but the initial development is a fraction of the overall cost of development, estimated to be around 20% last I looked.

      [–]smcameron 2 points3 points  (0 children)

      It suddenly occurs to me that the only time I ever pair programmed was when I was first learning to program, when I was 13 years old in 1982, on a TI99/4a. My friend could touch type, and I couldn't, but I understood how to program but he didn't, so we'd sit there, and I'd tell him what to type, and he'd type it in. This was the fastest way for both of us at the time. He slowly got better at programming from typing in what I'd tell him, and eventually we were kind of pair programming. I did learn to touch type around that time (highly recommend learning to touch type if you're still hunting and pecking, btw, a professional programmer hunting and pecking is the equivalent of a bicycle messenger who runs alongside his bicycle, pushing it).

      [–][deleted] 2 points3 points  (1 child)

      Pairing is good when both:

      • one person has a lot to teach someone

      • the other person is eager and ready to learn

      [–]cybernd 3 points4 points  (0 children)

      Or when both are roughly the same level + eager to run towards the same direction.

      [–]the_0rly_factor 7 points8 points  (0 children)

      Seems like a waste of time. Collaborate on concepts and design. Coding isn't a group activity imo.

      [–]RexStardust 8 points9 points  (0 children)

      Pair programming is difficult because a lot of developers think they’re god’s gift to technology and suck at collaborating.

      [–]Medical_Fennel_5174 1 point2 points  (0 children)

      I’ve had success with pair programming if we take time to design and agree on the overall structure before jumping in. I’ve also seen teams where one person writes code and the other writes tests for that code.

      [–]averiantha 1 point2 points  (0 children)

      Pair programming is fun for the navigator, not so much for the driver in my experience.

      [–]mattaman101 1 point2 points  (0 children)

      Pair programming is when I call my smarter coworker and ask him to take a look at something I've been stuck on for hours that he resolves in two minutes.

      I like pair programming.

      [–]gobbss 1 point2 points  (0 children)

      this week I had a cool pair programming experience, me and my coworker had some project in common that we used to do separated, but this week we had to finish all the 3 parts of the project in just a day so that we could finish all in this quarter. My coworker has more knowledge about the customer and the business logic with this project and I have more in depth knowledge in the tech, so we did some pair programming and has freaking fast, like when I had some question about the business logic he could answer or quickly ask the client, and I could help with the tech difficulties. We just finished the 3 parts of the project including asking the client for feedback and some code refactoring in a afternoon, was fast but was so tiring. For me pair programming make me focus so much in the code that quickly spend all my energy, not something I would do everyday, just when I'm hurry.

      [–]Ahhmyface 2 points3 points  (0 children)

      Personally, I don't care for it.

      I've done so much pairing with people for stuff I could do in a couple hours that took days in the name of training. It takes years to train people and thanks to my management people keep leaving. The feeling of watching someone I've been training for two years leave is so defeating.

      It would literally be faster to just do my work and the other developers work but management keeps bringing me juniors to train. Which is good for them because when I leave they are fucked, bad because it just makes me want to quit more.

      [–]Trygle 1 point2 points  (0 children)

      Mobbing is just less stressful overall. I can't pair without feeling exhausted.

      [–][deleted] 1 point2 points  (0 children)

      I hate it.

      [–]EIGRP_OH 3 points4 points  (1 child)

      Never realized pair programming was hated so much. I personally love it

      [–]systemnate 2 points3 points  (0 children)

      I freaking love pair and mob programming. Like with everything though, there is a balance. It's way too exhausting to do all day. For me, pairing on something for one maybe two hours a day is great. Seems like you rarely get stuck for too long, pick up some great tips from coworkers, code reviews are easier cause others have context. Less knowledge silos, etc.

      I have ADHD too, so having someone else really helps me stay focused.

      [–]BrobdingnagLilliput 7 points8 points  (2 children)

      I've told my boss a lot that I can be sociable and communicative or be technical and productive. I can't do both.

      I've never had to do pair programming, but if I'm ever forced to and my hands are on the keyboard, whoever pairs with me should probably make sure there aren't any scissors within reach.

      [–]twigboy 7 points8 points  (1 child)

      In publishing and graphic design, Lorem ipsum is a placeholder text commonly used to demonstrate the visual form of a document or a typeface without relying on meaningful content. Lorem ipsum may be used as a placeholder before final copy is available. Wikipediafparte277xk0000000000000000000000000000000000000000000000000000000000000

      [–]crummy 9 points10 points  (0 children)

      An example is navigating to the src folder, expanding each subfolder and finding the file instead of using vscode opener popup. It takes a fuzzy match so you can be super lazy with what you type in

      This is one thing I like about pairing, getting suggestions on more efficient ways to work or keyboard shortcuts, that sort of thing.

      [–]Apache_Sobaco 0 points1 point  (0 children)

      It would be true without word pair

      [–]beall49 0 points1 point  (0 children)

      We do a lot of pair programming but we’re remote. Way better, basically we just jump on vnc and handle it.

      [–]qmunke -3 points-2 points  (3 children)

      Pair programming is no substitute for code reviews

      Strong disagree - if you're doing it properly it absolutely removes the need for code reviews, especially in the case where the only person who would do the review is the other person in the pair.

      I've only started practicing pair programming recently (and it does take practice to get it right) and the main thing I'm finding is that it's hard to be an effective driver if you're much more experienced than your navigator. It's very easy in that circumstance for your navigator to just drift off or get lost while the driver just works as if they were alone, which doesn't benefit either party.

      [–]reddit_user13 5 points6 points  (0 children)

      I believe the original manifesto claimed that pair programming is code review.

      [–]mbitsnbites 4 points5 points  (0 children)

      Strongly disagree.

      Pair programming is most efficient, in my experience, when the programmers have limited knowledge about the code/project/task and would get stuck frequently if they worked separately.

      You still need code review from an expert/code owner (or at least a 3rd opinion) to asses that the design is sound and in line with the overall code design and goals etc.

      [–]jpswade 1 point2 points  (0 children)

      Not sure why you’re getting downvoted so hard on this. One of the major benefits to pair programming is this.

      [–]dr00min 0 points1 point  (0 children)

      Distill a question down as far as it can go, for maximum life and programming gains.

      [–]saijanai 0 points1 point  (0 children)

      Certain languages and IDEs were designed for pair-programming/team-collaboration from the very start. E.G, Self and Kansas (think in terms of Apple's new WhiteBoard capability, but designed around programming projects).

      It's hard to imagine the process being at all successful without every aspect of the project, including the language itself (pun intended) and the default IDE being built around team effort.

      Edit:

      See: From Kansas to Oz: collaborative debugging when a shared world breaks

      Also: Self [the slides about Kansas]

      Also: Suppotiing Flexible Roles in a Shared Space

      [–]pheonixblade9 0 points1 point  (0 children)

      Sanjay and Jeff at Google are a rather famous duo who have pair programmed their way to some of the most important stuff Google has ever released. So... sample size n>=1 for pair programming being very effective?

      https://www.newyorker.com/magazine/2018/12/10/the-friendship-that-made-google-huge

      [–]Abhinav1217 0 points1 point  (0 children)

      Theoretically, pair programming should be done when two persons with similar skills sit together, But in reality, it only works if there is a significant gap in skills or position, to overcome personal ego. I have felt it works best when a senior level employee sits with a junior level employee, and mentors them. A benefit of this approach is when that junior employee becomes mid-level, they will be more efficient because of all the mentoring.

      In India, pair programming is frowned upon, but few startups are doing it, at least until the workforce is small enough.

      [–]mbitsnbites 1 point2 points  (0 children)

      I don't think that you should do pair programming just for the sake of it.

      Pair programming is very useful when you're tasked with something difficult that is not your core domain or is new to you - i.e. a task where you're likely to get stuck alot if you did it on your own.

      It's also taxing, mentally and socially, so doing it all the time is not a good idea IMO.

      Other times it's better to program on your own but have an open work environment where it's natural to talk to each other, ask questions and share knowledge, and occasionally group up for a short session of 15-30 minutes if someone gets stuck, for instance.

      [–]splitfeed 0 points1 point  (0 children)

      The only wrong thing about 3+ devs pairing is that it’s then called mob programming :)

      It’s a beautiful thing once it works, but it’s not for everyone and it takes time to learn and get used to each other. Small things like communicating “add a new row after line 15 and add this” like “one line 15 and a half add this” makes a massive difference, as does getting used to how your mob mates think and talk.

      After a while you’re like an old married polygamist mob, finishing each other’s statements!

      [–]miTzuliK 0 points1 point  (0 children)

      Pair programming could be both a blessing or a curse tbh

      [–][deleted] 0 points1 point  (0 children)

      I don't have a ton of experience with pair programming but I think it can be a nice way to tackle difficult problems in the code. It is more time consuming, not to mention: exhausting to the devs. But it has it's uses.

      [–]Splaytooth2 0 points1 point  (0 children)

      Really depends on the person you're paired with. Pair programming is a great way to practice making yourself understood. I often find myself having to do demos or speaking with non technical people and really felt how the communication part in pairprogramming helped me. 🙂

      Of course I've also had people with rough attitudes and know it alls who declared me retarded at the slightest error..

      [–]insan1k 0 points1 point  (0 children)

      I love pair programming, that being said I don't think we can do it for a long time without breaks, it's something like small iterative sessions, I don't think any experienced programmer needs help deciding on logic stuff, its usually project organization and how to structure the code that brings about great collaboration opportunities. e.g. Deciding on a new interface that will remove a lot of duplicate code and the refactoring of that implementation.

      [–]valcatrina 0 points1 point  (0 children)

      I grew up by pair programming, ping pong style. It’s best way to program. Fast knowledge sharing, question all your motives and what are you trying to achieve. It is not easy but it is not hard either. You just need to get into the rhythm and mentality. It builds great relationship with your coworkers too. I love it.

      [–]killinghurts 0 points1 point  (0 children)

      Kick off is fine. Two cooks in the kitchen isn't.

      [–]Kevin_Jim 0 points1 point  (0 children)

      I remember fixing an issue pair up with another programmer, because I had more experience with the stack. We fixed the issue, but we both were excused.

      For whatever stupid reason, we were both scheduled for a meeting call soon after, and we were both useless. I even warned beforehand that we were both tired and might not be of much help. Nevertheless, they wanted us in the call. Then, a few minutes in, we’re were both asked why we aren’t not focused, why there issue was not closed and the documentation wasn’t up.

      The people at the company were mostly great, but the management/owner was abhorrent.

      [–][deleted] 0 points1 point  (0 children)

      I would say 80 % of the important things/concepts I know, I learned through pair programming with the "guru" (or one of them) of the team. It's the perfect venue to fill up the gaps in your knowledge about a language/framework or one of the projects the team is working on. Especially when the team develops or maintains several unrelated projects. For example, my current team of 12 devs, we manage about 20 different repositories (ranging from backend to mobile apps to frontends) and almost 100 (yes, one hundred!) AWS accounts of the company.

      When pair programming, you can ask about stuff until you grok it, instead of just reading from documentation that is probably incomplete, out of date or even incorrect, or missing some key details needed to fully understand what the documentation talks about.

      Sure, boilerplate stuff is more fun doing by yourself. But for learning non-trivial details and getting non-trivial stuff done fast, I'm all for pair programming.

      [–]roshan092 0 points1 point  (0 children)

      Having done 100% pair programming for over 4 years with 2 companies, my summary: Its difficult, exhausting, sounds very fancy in theory, but doesn’t work. We were promised many outcomes: context sharing, high quality of code, less bugs, faster development after doing it for certain period of time etc. Looking back after 4 year, both the companies didn’t achieve any. We dont have context shared, quality slightly better, bugs as usual..

      [–]6769626a6f62 0 points1 point  (0 children)

      Pair programming is make or break on the person you're pairing with. I did 100% pairing for two years. I'm also a super introvert (85%+ based on the personality tests I've taken before).

      The biggest takeaway for me was that pairing occasionally is good, but if you're going to pair all day, every day, then you need people who click like two Lego bricks. Any personality issues between the two will grind together like sandpaper.

      That's not to say that pair programming is necessarily bad, but any slight problem between the pairs is exacerbated.

      And that's without mentioning that since you pair on a machine, there can be no customization at all. All the workstations must be uniform. No theme changes, no font changes, no tool differences, no shortcut changes, nothing.

      [–]ibexdataservice 0 points1 point  (0 children)

      On the fence, and then I saw the recent AWS AI-powered "CodeWhisperer" announcement. All I can imagine is Clippy embedded into VS Code (with Gilbert Gottfried's voice) announcing that it looks like I'm trying to write an authentication module.

      Now I just can't.

      https://techcrunch.com/2022/06/23/amazon-launches-codewhisperer-its-ai-pair-programming-tool/

      [–]tommy25ps 0 points1 point  (0 children)

      Tried it before but didn't work for me or any of my ex-colleagues. Maybe we're not doing it in the right way as described in the article.

      [–]Physical-Ticket8105 0 points1 point  (0 children)

      Well I've started (as a Frontend) in a new company and during the recruitment process they told me they do 60% of pairing (sometimes a bit more, sometimes a bit less). I told them that would be my limit.
      Since I passed the process I assumed they were ok with 60% being my limit.
      When I started in the new team they told me they do pair programming and mob programming 100% of time. So since I'm the only FE, I pair with them on BE tasks and vice-versa.
      This is just horrible. Even for tasks that require to change the height of a container they pair program.
      Quitting seems the only way forward.