Friday, September 10, 2010

Pair Switching Degrades over Time

We had a nice talk today about the natural foot-dragging that is common among pair programmers when it comes time to switch partners.
  1. It's not really social, as in partners gravitating to each other as buddies. Instead it tends to be more work-related. 
  2. It does feel socially awkward to tell your partner you want to go work with someone else now.
  3. It sometimes does happen that partners who are gung-ho agilists will prefer working together. They prefer partners who allow them to do their work well and will improve them over those who create drag by arguing against testing or refactoring.
  4. People get comfortable in a particular task and want to see it through.  This is a good feature usually, and certainly is favorable for people who do individual, non-paired work. In an agile team, it's limiting. Someone needs to move on so that there are more eyes/hands/minds in the code.
  5. If there is no standup there is no pair switching.  If the team relies on assignment from a manager (totally non-agile) then teams tend to complete tasks at different times. This means that no two pairs are finished at the same time, so any switching requires interrupting at least one pair.
  6. Everyone wants to work in the "cool" stuff, but each person has their own definition of "cool."  People will gravitate to tasks in the areas that excite them, and don't want to leave that work to do something else with a different partner.
  7. People are nervous in work that they don't understand well. Rather than eagerly gaining experience in all areas of the app, they try to stay in an area where they have knowledge and leadership. Switching partners may take them into areas they don't understand.
I'd like to open this up to a larger conversation with agile and becoming-agile and surviving-as-non-agilist-on-agile-team people.  Why is it that you don't want to switch three or four times a day?