Agile Pair Programming

When I think about pair programming in Agile, what I really think about are several facets, not just the usual: 2 Developers, 1 keyboard.

I think Agile developers should not only pair in some sort or fashion, but I believe that testers should pair with development as well. The benefits of pairing developers and testers in my mind are so valuable for an Agile team, here are some of my favorite reasons:

Agile Pair Programming and Testing

  1. Testers and developers will learn from each other through ‘promiscuous pairing‘ (pairing with many different developers and testers throughout a development cycle)
  2. Testers learn programming techniques – Such as how to better do automated testing
  3. Developers can go through testing tasks earlier with a tester to give guidance
  4. Test cases are covered earlier through developer pair reviewing
  5. Testers and developers create a shared language, a common vernacular that helps with communication and collaboration

What other benefits do you suggest comes with pair development?

10 Responses to “Agile Pair Programming”

  1. Jeff Furman
    July 7, 2011 at 8:45 am #

    Neal Ford was very good on this topic last week at an excellent
    presentation he gave in Manhattan for the Agile NYC User’s Group.
    The presentation was a case study: ”Rails in the Large: How Agility Allows Us to Build the World’s Biggest Rails App.”
    He said that sometimes that it’s very effective to change pairs very often, after each day or even after half a day.

    I asked him after his talk how his company gets programmers who are good at getting re-paired on such a frequent basis, since programmers from my experience can often be independent types. Neal said that when they hire programmers, they specifically look for the kind of collaborative personality they feel will do well with paired programming, and this helps them get very good results.

    If your readers get a chance to see Neal speak, I highly recommend they take advantage! Jeff

    • peter
      July 7, 2011 at 11:04 am #

      Thanks for the insight! We’ll look for Neal and his talks.

  2. Pablo Tortorella
    July 7, 2011 at 9:41 am #

    I completely agree with the post.

    Responding the question:
    Pair programming increases focus. There’s no lost time (facebook, personal email, etc).

    I suggest: Pair programming + Pomodoro Technique

  3. Micaël Masse
    July 7, 2011 at 12:15 pm #

    I find it interesting also for the business sharing part too. In our team the QA Manager is also in the client calls with the product owner and other stakeholders so she is really aware of the business and that would help the sharing of business knowledge to the team members even more.

    • peter
      July 7, 2011 at 10:11 pm #

      Agreed. The business would find it valuable as well

  4. Jeff Furman
    July 8, 2011 at 10:40 am #

    Peter’s thread and all these interesting comments made me think people might want to know a little more about Neal Ford’s “Ruby On Rails” presentation for the Agile NYC Users’ Group. So for anyone interested, I wrote a little more about Neal’s presentation in a blog post yesterday afternoon:

    http://www.jeff-furman.com/2011/07/outstanding-presentation-on-agile-rails-by-neal-ford-for-nyc-agile-users-group-last-week/

    • peter
      July 8, 2011 at 10:54 am #

      Sweet. Thanks for sharing man!

  5. Scott Duncan
    July 9, 2011 at 11:20 am #

    Been working at a client who has lots of off-shore folks both in development and test. Recently, a middle manager in chanrge of one of the main development groups using offshore staff, approached me about working with them on pairing. There has been a hand-off, waterfallish behavior between the dev and test folks, leading to consistent failure to deliver “done” functionality every iteration.

    So Im getting ready to do some very engineering-level training and coaching for this group of people. Part of what the client manage wants to see is pairing between dev and test folks and a more test-driven approach to the development to strengthen the unit level testing so the functional level runs into fewer blocking errors. (Right now, the functional testing cannot be completely integrated into the iteration work done by developers for avariety of reasons.)

    But the idea of pairing dev and test staff is something I’ve had clients do before, sometimes on their own, other times with a lot of urging from me.

Trackbacks/Pingbacks

  1. Agile Pair Programming | Agile | Syngu - July 16, 2011

    [...] or fashion, but I believe that testers should pair with development as well. The benefits of… Read more… Categories: Agile     Share | Related [...]

Leave a Reply