What do you think of pair programming?

Does it automatically allow for (much) higher quality code?
Is there truth and practicality in it?
Have you applied this in your company?

I think it's a bit of a dogma and its benefits depend on whom you're working with. Sometimes two incompatible people will waste each other's time, or a person who works much better alone will instead work in a worse manner.
I know for a fact there are colleagues (including myself) who can't stand it when someone else is looking at their screen.


  • 6
    If you like it and are more productive doing it, then great. I personally despise it and think it is the stupidest, most wasteful practice I've ever encountered. I will never do it. So, I consider it a personal preference based on personality. If a manager forces you to do it or not do it based on dogma, then that manager is bad. Really bad. If someone tells you you are "wrong" for feeling one way or another about it, they need a slice of humble pie.
  • 7
    I tried it, and it was sort of OK for a mostly code review or walkthrough. But when I really have to think, such shit is the most reliable way to guarantee I won't get into the zone.

    It's that managers have no clue what "the zone" even is, and how it relates to dev productivity.

    If forced upon me, I would double or triple all my time estimates because that's at least something that the bean counters understand.
  • 2
    As far as pair programming goes, my personal preference would be to ask one of my team members to discuss the problem at hand because I find the second opinion valuable. As far as coding is concerned, id rather do code reviews instead.
  • 2
    If I need to debug something complicated or implementing something complex and I have good partner it is a good way to avoid some errors.

    But it requires that both understand the problem and don’t have issues.

    Its not a good solution for all cases as it will waste time, better with code reviews in most cases.
  • 0
    For me I spend the most of the time explaining why we should do this and not that..
  • 0
    If both persons never really did pair programming, it can (but not necessarily will) be counterproductive. Additionally, not every person can do it (personality), and it shouldn't be forced if people really do not want to to it.

    No method works "automatically", but usually has to be properly introduced.

    From the linked article: "Pair programming is a social skill that takes time to learn. You are striving for a cooperative way to work that includes give and take from both partners regardless of corporate status." //
    This summarizes it very well, pair programming is nothing that can be introduced in five minutes and directly works.
  • 1
    @sbiewald I doubt that devs really can chat while being in the zone. Sounds more like a marketing / HR article geared at selling seminars and shit when it predictably doesn't work too well.
  • 1
    I regularly do this with someone currently. I like pair-programming.
    There's no chitchat, just talk about the current project and the current scope. This means shit gets done fast, because there's no issue for both participants that makes them fall out of the zone.
  • 0
    But yes, it's important no one's forced to do so, or it won't be of help. Sometimes you just need to code on something by yourself.
  • 1
    Like most practices, it depends.

    Pair programming requires compatiblity... personality / psychology wise

    ... But that is true for everything "team related". Having an lonely alpha working in a team is impossible.

    So... Like always, don't enforce it. And even better: Before even thinking about it, talk with the team and ask everyone in private.

    Most people have the seriously brain damaged idea that "If everybody does it, I'll need to so it, too". And that will lead to an apocalypse.
  • 2
    I would prefer to do pair design, both people can discuss high level solutions and come up with the best approach.

    If I’m writing code, then I’m already at a task level, I don’t see how having more than 1 person doing that makes it more efficient, unless it’s a junior paired and learning from a senior.
  • 0
    I hate it just for the reason that I cannot think clear. Having someone beside me makes feels like the person is judging me or that I have to explain every variable naming.
  • 1
    "Sometimes two incompatible people will waste each other's time"
    - tru dat
  • 0
    Personally I really like it if it is a person I pair well with. Actually getting into the zone together feels freaking amazing.

    If it is a dev I do not pair well with, it is meh at best.

    So I think it really depends whether the pair clicks or not.

    Also, managers dictating that everything has to be done in pairs, are morons. Just because it is shiny and new and you heard o so much about it, it doesn't 'just work'.
Add Comment