Pairing – Why does it work?

[tweetmeme source=”snarayan” only_single=false]

Pair programming is an extreme programming (xp) practice that involved two programmers work together to finish off a task. They typically share the same workstation too.

Well.. the general perception of programming is, you have more programmers you get more stuff done. Now, it seems extremely inefficient to have two folks working on a single workstation. You’re working at 50% capacity in someways.

This is absolutely false.

When correctly used, pairing can be a great productivity boost, also helping in sustained growth in quality.  Let me share my perception on pairing since I’ve used it..

1. Sharing tool.

A team can have its senior folks pair with its junior folks on a regular basis and ensure that knowledge is shared in the best possible manner, at work (inspite of a theoretical session).  Even within a project, knowledge of different modules can be shared with all members of the team through pairing.

2. Dependency management.

By sharing and distributing knowledge with team members, you’re also reducing the dependency on individual programmers/members of the team. Hence reducing the risk of people moving out or overpricing folks.

3. Culture of equality. (No hero worship)

Since the knowledge and responsibilities are divided so evenly, you tend to have less heroics at work. Hence providing a very healthy culture of trust and respect within a team.

4. Reduce Developer Block time.

As developers, we often get into a state where we are blocked with a problem. Either we do not know a solution or we know a couple of them and are not clear which one to go for.. With a third eye always with you, this can be reduced to an extent. Two people thinking about a problem increases the chances of a better solution coming along, since both programmers can bounce ideas off each other.

5. Parallel Code Reviews.

With people working with each other, you are getting reviews done parallelly without hurting each other’s sentiments :). Typically Code reviews happen to be badly done. Most developers hate to accept review comments once they’re done with their code. But since its done while they’re coding, it works fine for both parties.

6. Development of good practices.

There are many habits and shortcuts that can’t be taught in isolation. Sharing small tricks and shortcuts become really easy with pairing. Also when you’re pairing with somebody good, it can really motivate you towards programming.

I’ll have to agree that I did not believe in these things before I started incorporating them in our daily exercise.

It works for me.

4 thoughts on “Pairing – Why does it work?

  1. Not sure the applicability in the service industry, this works beautifully in product development though. Clients in the services industry fancy agile, but they would never pay for two developer’s for a 8hr combined effort :).

  2. Pairing can be extremely boring when you pair with a low skill dev and try to educate him. However the pairing can be a time wasting, money burning practice when the app build/deploy/start takes too much time and you have to wait when the cycle ends and you can test the implemented feature.

    Pairing can be so annoying when you can not agree with your teammate in the solution and start arguing for your own.

    So the pairing can be good, but you have to use it carefully not blindly..

  3. The six point show here, are only valid in a bad non pair enviroment. You can always do every one of the 6 points in a non pair enviroment, in fact you must do, without the need of do it at the same time.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s