97 Things Every Programmer Should Know

(Chris Devlin) #1

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!

Free download pdf