Pair Programming – An Extremely Agile Practice

Pair Programming - An Extreme Programming Agile Practice.Pair Programming. It’s probably one of the most extreme practices of eXtreme Programming (XP). It’s an area of agile software development that polarises opinion.

The concept is simple enough. Two developers work side by side on the same piece of work, sharing a keyboard and screen and working together to produce the code.

The main advantage of pair programming is usually cited as improving quality, which also improves productivity further down the line.

Another advantage is spreading knowledge, as at least two people will know each area of the system. And it can also help with skills development – a kind of coaching and mentoring technique with one of the pair more experienced than the other.

It’s also possible to benefit from the theory that two brains are better than one. A simple way of explaining this is that two people have very different experiences. One may see a solution that the other doesn’t. It’s possible that two minds might lead to solutions that are quicker to implement and simpler to maintain.

Even without pair programming, it’s quite common for two developers to work together when they hit a particularly thorny problem. It’s usually a little while before someone declares they are stuck and asks for help. With pair programming, this situation doesn’t really arise, so time is not lost with single developers perservering on their own.

The other area it can help with is motivation and retaining focus. Someone is much less inclined to become distracted and spend time on facebook, for instance, when they are working with a colleague.

The motivation advantage reminds me of DIY in my case. I hate DIY! I will put it off for as long as possible. I’m simply not interested enough, so it doesn’t get done. My solution to this? Invite my father-in-law round! Once he’s in, he’s so keen to get started, and I have to get it done because that’s why he came over. He gets me started and keeps me focused. Hopefully you don’t have wide-spread motivation problems in your team, or you have deeper problems to worry about! But we all go through short periods like this, and pair programming keeps them to a minimum.

On the other hand, pair programming also has some disadvantages.

In the short-term, there is a loss of productivity, or at least perceived productivity. You have to have sufficient budget to put two developers on each piece of work. If your team needs specialist skills, you have to have a team where there are at least two people with each major skillset. And when you need to hire another person, you ideally need to hire in pairs.

I think it’s also important that the team members have the right chemistry. That they spark off each other. And can work closely together without differing opinions causing endless frustration. There’s a loss of autonomy, having to explain everything and constantly build concensus. Sometimes you’ll be constrained by your partner; other times they may be going too fast for you.

This reminds me of back-seat drivers. It’s so annoying when someone sitting beside you keeps interfering and just won’t let you drive how you want to! It’s tiring and frustrating.

These are important soft-factors that can make or break pair programming in practice.

In the end then, like many agile development practices, you have to look at the unique circumstances of your team, and understanding these factors, decide for yourself when and if to adopt pair programming.

There is currently a discussion on pair programming on my new Agile Community. If you have something to add, why not go and join in?

Kelly.

Photo by kurtthomashunt

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn

Leave a Reply

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

Recent Posts

An Interview with Kevin Gaskell: How to go from ordinary to extraordinary

A conversation with Kevin Gaskell: business man, leader, investor, entrepreneur, author, speaker, and record-breaking adventurer. “All ordinary people have the potential to be extraordinary” Occasionally you meet someone truly inspirational. Extraordinary, even. Kevin Gaskell is certainly one of those people. He’s led some of the world’s most iconic brands, including Porsche, BMW and Lamborghini. He’s started successful businesses. Invested in

Read More »

In The Zone with Marcin Zasepa

Welcome to the second in our new series, ‘in the zone’, a collection of conversations with CTO’s within the CTO Zone community. Each week we’ll be discussing the latest trends, insights gained from there experiences, and future predictions for their industry. This week we’d like to welcome Marcin Zasepa, CTO at Homegate AG in Switzerland. Every episode will be approximately 30 minutes

Read More »

In The Zone with Sasha Bilton

Welcome to the first in our new series, ‘in the zone’, a collection of conversations with CTO’s within the CTO Zone community. Each week we’ll be discussing the latest trends, insights gained from there experiences, and future predictions for their industry. This week we’d like to welcome Sasha Bilton. Every episode will be approximately 30 minutes long, and we aim

Read More »

Search the Blog

Agile Management Made Easy!

All About Agile

By Kelly Waters

“’Agile’ is one of the biggest buzzwords of the last decade. Agile methods often come across as rather more complicated than they really are. This book is an attempt to unravel that complexity. To simplify the concepts. This book breaks the concepts into small bite-sized pieces that are easy to understand and easy to implement and delivers the message in a friendly and conversational style. Allaboutagile.com is one of the most popular blogs about agile on the web. ”

Kelly Waters

Agile 101 is available to purchase. GAME ON!

Agile 101

Emma Hopkinson-Spark

“Whilst there are lots of ways you can vary the game depending on the teams you have and the learning outcomes you want, the basic flow of the game play is common to all.”
Emma Hopkinson-Spark

Why did we make the game?

How to play the game?

London

101 Ways Limited
145 City Rd
London
EC1V 1AZ
United Kingdom

Amsterdam

101 Ways BV
Weesperstraat 61-105
1018 VN Amsterdam
Netherlands

Contact Us

If you would like to get in touch with one of the team at 101 Ways, then please fill out the form below or email us at contact-us@101ways.com.