What is up with all the apairia?

The love of pairing, specifically pair programming with real geek joy, is seeming quite scarce. I keep finding myself around folks who, from my perspective, don’t get it. I want to really understand this. Get underneath it and inside it and get it.

So I’m asking: What are the causes of apairia? If you have personal experience, what do you hate most about pairing? If you’re a coach, have you seen people go to lengths to avoid pairing?

I am not asking to hear good stuff about pairing. This is all about a•pair•i•a: the fear of, hatred toward, or avoidance of pair programming (esp among fans of collaboration and code quality).

What are the causes? Are there effective treatments?

GeePaw sez…

If you’ve only ever had bad pairing experiences, it can seem like the best thing is never to pair again. I even know several coaches in that camp.

Consider dancing, another highly interactive joy-bringer. Imagine how you’d feel about dancing if:

  • your partners were all also first-time dancers;
  • you only ever danced in a tight closet;
  • your idea of dancing is for you to sit there and watch;
  • you get yelled at for stepping on toes;
  • you had the same partner for days;
  • …you get the idea.

We need to make sure every noob has at least one excellent pairing experience. If we fail to accomplish this, we can lose potentially terrific pairs forever.

2 thoughts on “What is up with all the apairia?

  1. Evan Cofsky

    Sometimes asking for help to help these people feel more welcome works, especially if the experience is positive for the person with apaira. The more positive a pairing experience is for the person averse to pairing, the easier it will be for that person to continue pairing in the future. But someones the person experienced with pairing also gets too wrapped up in it and ends up driving away the newcomers without even meaning to. So we have to be very aware of how the newcomers are feeling, which is difficult. Our monkey brains correlate the strangest feelings.

  2. David Adsit

    I love pair programming and have for years, but I also see a lot of reluctance to pair among developers. I think there are 2 primary impediments to pairing: discomfort and fear.

    Discomfort is a combination of environmental factors. Standard cube furniture isn’t conducive to pairing. Some people are averse to the noise level of a team that is successfully pairing. I even worked with one developer who (claimed he) couldn’t stand florescent lights and insisted on working in a dark office with only 1 dim incandescent lamp. The environmental factors are (mostly) easily overcome if you have management support to adjust the workspace to the needs of the team.

    I believe that the much bigger reason developers avoid pairing is fear. We all seem to have large egos, but I have come to believe that a lot of that is bravado as the developers I know personally seem to have rather fragile egos, especially with regard to the code they have written. Any suggestion that a line be changed is almost a personal attack on that developer, his intelligence and possibly his lineage. Pairing (especially in conjunction with something new to one of the pairing partners) can be a daunting and embarrassing experience. If you can’t check your ego at the door and Wear the White Belt (Apprenticeship Patterns), you will have a lot of difficulty with the pairing experience. This is especially true for seasoned veterans in the profession. The more experience you have in the field, the more likely you are to feel embarrassed, attacked or offended when someone recommends changes/corrections for your code/design/tests/keyboard mapping/etc.

    I think that the only way to overcome the fear is to internalize the fact that we are all apprentices in some aspects of the craft even if we approach mastery in others.


Leave a Reply to Evan Cofsky Cancel reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>