Odd Teams
Any team I am a member of is bound to be a little odd....
OddTeams is a practice used to deal with the situation where you have an odd number of developers who are trying to pair program. The basic practice is as follows:
-
Give each pair station an identifier, preferrably a number
-
Pair up on the stations to the extent possible. I recommend letting a stronger developer take the helm as the loner to start.
-
Set a timer for a reasonably short duration. We have found 20 minutes to be a comfortable clip.
-
Hack away
-
When the timer goes off, switch. Follow rules of:
-
drivers stay at their stations and become navigators
-
navigators move to the next station and become drivers
-
alternate between moving to the left and moving to the right (see below)
For three people, two stations it looks like (parens represent a pair at a station):
-
1 (2 3) > (2 moves right)
-
(3 1) 2 < (3 moves left )
-
3 (1 2) > (1 moves right)
For five people, three stations, it looks like:
-
1 (2 3) (4 5) > (2,4 move right)
-
(3 1) (5 2) 4 < (3,5 move left )
-
3 (1 5) (2 4) > (1,2 move right)
-
(5 3) (4 1) 2 < (5,4 move left )
It continues to scale in this manner. Notice that the outer pairs get increased focus from individuals -- i.e. one full hour of attention at a station, while the inner pairs get more pair focus.
Cons:
-
High frequency context switching, not necessarily at points-of-closure. If you are typing mid-stream when the buzzer goes off, it doesn't matter, you go ahead and switch.
-
Violates the principle of AcceptedResponsibility.
-
Other?
Pros:
-
Time passes even more quickly [for us] than our normal "EvenTeams" pairing, possibly due to the increased time-limit focus
-
Provides an explicit framework for dealing with O(n^2) communication issues via a hive-like collective conscious
-
Every programmer works with every other programmer
-
Every programmer develops on every part of the system
-
prevents keyboard hogs and lazy navigators through team process rather than personal discipline
Feedback appreciated -- JefNewsom
What we do here is, just avoid odd number of devs. (Disclaimer: we're not extreme yet, still ad[ao]pting.)
So if the team ends up having odd devs, we split the pairs at the stand-up meeting as usual. The person who gets to be pairless at any given time:
-
does some sysadmin or dba work. We seem to be always needing some.
-
refactors the html/zpt/css stuff.
-
chats with customer.
-
pairs with the coach when he/she is available.
-
spikes stories for the next day.***
See
PairProgrammingTrainingWithBlitzClock
PairPromiscuously