2

I think pair programming can be incredibly effective, and I don't mind doing it every now and then, but a company I've interviewed with states they pair program "95% of the time" (they're a consulting shop, so they do this on client sites).

This worries me because it sounds very demanding/exhausting. I realize it increases productivity, but to do it all day, every day, may actually decrease my morale and ability to think. I wonder if they sell this idea to clients to assure them of greater productivity...

gnat
  • 21,442
  • 29
  • 112
  • 288
jlewkovich
  • 129
  • 4
  • 4
    None! Problem solved. – Ampt Sep 18 '14 at 18:16
  • I've heard a lot of reasons not to pair-program, but this is the first for demanding/exhausting. – JeffO Sep 18 '14 at 18:25
  • @GlenH7 I'd argue my question is slightly different, because I'm asking about time allocation. People may want to weigh in on how much PP is too much, time-wise. – jlewkovich Sep 18 '14 at 18:41
  • 5
    @JL - Have a look at the [selected answer](http://programmers.stackexchange.com/a/9518/53019) on the suggested duplicate, in particular the part about `pair programming is most effective in approximately 1.5 to 2.5 hour blocks` –  Sep 18 '14 at 18:42
  • 1
    THe answers would range from 0 - 100%. As an introvert, personally I find it can be effective, but If I had to spend 100% of my day attached to another person, I would run screaming out of the room. 10-20% would be fine. If you feel uncomfortable with the 95%, then go with your gut feel that this is not the job for you. It doesn't matter what anyone else would choose. – HLGEM Sep 18 '14 at 18:54
  • 2
    @JeffO, for an introvert, it would almost certainly be exhausting as person interactions suck energy from them and private timerenews the energy. I can see it as demanding too as it would be harder to take a few minutes break to think of something else which some people need because they tend to problem solve with their unconcious brain. Plus you have to deal with negotiating personality and and work style differences all the time. It exhausts me to even think of it. – HLGEM Sep 18 '14 at 18:59
  • @HLGEM - This also depends on how much of the day is spent programming. – JeffO Sep 18 '14 at 20:13
  • Part of this answer depends on "how" you're doing pair programming. If you're doing it under the auspices of something like Xtreme Programming, then there's no choice, it should be 100%. But if you're using some other approach (or just pair programming in a vacuum) then it's a whole other percentage. – Unknown Coder Sep 19 '14 at 15:30
  • @JeffO Not necessarily. For introverts, the time spent programming alone is refreshing and pleasing and lets them get in "the zone", and it's also probably *why* the got in programming in the first place. Doing this mostly with another person watching over your shoulder, constantly talking and discussing things, is highly stressful. – Andres F. Mar 23 '16 at 13:47
  • @AndresF. - The company is very upfront about their pair-programming requirements, so I would think anyone this doesn't appeal to wouldn't continue the pursuit of this job, but I agree there could be problems attempting this with an existing team. – JeffO Mar 23 '16 at 17:57

1 Answers1

2

The idea behind pair programming is that you back each other up and bounce ideas off each other in real time. If one of the two of you gets hits by a bus, the project still goes on with little to no interruption. If both of you got hit by the same bus, well ... :)

The idea behind pair programming is not that you are going faster, but that you and your partner in crime, working as a team, go faster as a team as a result of your effectiveness in thinking out how to resolve issues and your efficiency in implementing your thoughts without making major mistakes. In other words, speed is a by-product and consequence of the process of pair programming not its primary or secondary goal. The primary goal of pair programming is clean, reliable, maintainable code not a faster way to write crappy code.

  • I'm also looking for comments on what percentage of a developer's time should be pair programming. Do you think 95% is reasonable? –  Sep 18 '14 at 18:29
  • @JL No idea. Answer is probably geared to whatever bias you've got. My personal preference is 100%. Inevitably, there will be disagreements which are going to have to be resolved through each party designing their solution separately and comparing solutions or through escalation to the team leader. – Vietnhi Phuvan Sep 18 '14 at 18:38
  • 2
    Promiscuous Pairing is the solution to the "two people hit by the same bus" problem: in every break draw a lottery and randomly reassign pairs for the next 4 hours. Bonus points for doing this *across* projects, then, not only will everybody in the same project be on the same page, everybody in the *whole company* will be up to speed on *all* projects. – Jörg W Mittag Sep 18 '14 at 19:35
  • 1
    @JörgWMittag Sounds like a recipe for a highly stressful work environment for the many introverts doing software development... – Andres F. Mar 23 '16 at 13:49