Collective Wisdom from the Experts 129
Is knowledge privileged or shared? If you have been rotating tasks among
pairs, there is always someone else who has the knowledge and can com-
plete the work. Your team’s flow is not as affected by the “truck factor.”
- Solve problems effectively. If you are pair programming and you run into
a challenging problem, you always have someone to discuss it with. Such
dialog is more likely to open up possibilities than if you are stuck by your-
self. As the work rotates, your solution will be revisited and reconsidered
by the next pair, so it does not matter if you did not choose the optimal
solution initially. - Integrate smoothly. If your current task involves calling another piece of
code, you hope the names of the methods, the docs, and the tests are
descriptive enough to give you a grasp of what it does. If not, pairing with
a developer who was involved in writing that code will give you better
overview and faster integration into your own code. Additionally, you
can use the discussion as an opportunity to improve the naming, docs,
and testing. - Mitigate interruptions. If someone comes over to ask you a question, or
your phone rings, or you have to answer an urgent email, or you have to
attend a meeting, your pair programming partner can keep on coding.
When you return, your partner is still in the flow and you will quickly
catch up and rejoin him. - Bring new team members up to speed quickly. With pair programming,
and a suitable rotation of pairs and tasks, newcomers quickly get to know
both the code and the other team members.
Flow makes you incredibly productive. But it is also vulnerable. Do what you
can to get it, and hold on to it when you’ve got it!