In your experience, what is the most effective time interval at which to change pairs in pair programming?
Is it 90 minutes, 4 hours, a full day?
In your experience, what is the most effective time interval at which to change pairs in pair programming?
Is it 90 minutes, 4 hours, a full day?
It depends how long each task takes - if you're fixing minor bugs you might change quite frequently; if you're adding a major new feature you'd stick together longer.
I prefer at least a couple of hours, but experiments with intervals down to 45 minutes have shown the optimal time to be about 90 minutes.
For references, see Pair Programming Explained
I've found that once a discrete portion of work has been completed, or you start running into an obstacle is always a good time to switch it up.
Rather than break up a flow just because the time limit is up.
I believe that the best idea is to split the task you're working on into a smaller logical subtasks. Each such task should be able to be finished in approximately 45 minutes (like a high-school lesson). Programmers can switch after each such task.
Please note that splitting the task is already a kind of work on the target goal. Any task can (and should be) splitter into a smaller parts as soon as possible. It is a good idea to divide task into a smaller parts on the pair level (team-leader or manager don't have to be included in that process) - remember that agile promotes self-organizing groups.
Of course if subtask takes more time to complete (more than 45 minutes) then you don't have to switch until it is completed.