[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.