Stok Footage

Continually experimenting with new ideas and techniques — Reconstructing, Developing, Modernising.

Adventures in Pair Programming (Part 5)

At the August Toronto Perl Mongers meeting I gave a “brief” presentation of my experiences of pair programming. Fortunately some of my pair mates were in the audience, as were some Perl programmers with challenging questions, and they improved the presentation’s value to me.

As I have yet to succeed at getting pairing accepted at #{work}, I had become pretty despondent about ever getting to do any pair programming. Luckily for me, Avdi Grimm started publicising and I reasoned that if I cared about trying pairing seriously I might as well do it for myself, and the past few weeks have been enlightening.

Doing the presentation the the Perl programmers this month served as a useful retrospective. Some of the points raised were:

  • Enhanced discipline — As an example: both pair members admitted that it was hard to stick to TDD individually, but when in a pair it was possible and seen to be beneficial.
  • Willingness to try different approaches — If we had a couple of different ideas it was easier in a pair situation to try them all, and learn from those which didn’t work out so well as well as those which seemed to work.
  • The code, and any metaphors being used were discussed — this improved all kinds of things: code complexity, naming of things, conceptual coherence, and more.
  • Time management (pomodoro) led to frequent “mini-retrospectives” — this was unexpected. When the timer went off it seemed natural to discuss what had just happened in a broader context, reflecting on the way we were working rather than what we were doing.
  • Time management helped us remember to switch roles — This made sure one person didn’t accidentally hog the keyboard by making sure we tracked time and were interrupted.

There were some good skeptical questions asked too, about pair programming and extreme programming. Their essences included:

  • Isn’t this just a fad?
  • What if my personality type isn’t suited to pair programming?
  • Isn’t relying on communication flowing through a chain of pairing sessions dangerously like a game of Chinese whispers?
  • Didn’t the project where XP emerged end in failure?
  • Don’t we still need comprehensive and accurate documentation of some elements of a project to be developed?

I had a great time presenting it, and appreciated the audience participation. Some of the questions made me look at my assumptions and prejudices.

A PDF copy of my slides is available here: TPM Adventures in Pair Programming 2013 08 29. There are some links in there which are good starting points for exploration.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.