Does pair programming really work?
Pair programming or pair coding is two programmers working together at one workstation. One programmer is the driver that writes the code and then the other is the navigator who reviews each line of code as it’s typed in. Pair programming isn’t new but is normally associated with extreme programming. If you have never heard of pair programming before it may seem a little bit strange as it is quite different from solo programming but it does have its pros and cons.
Two heads are better than one
You're going to come across a problem at some point during a project and if you’re working as a team it is very likely that one you will have encountered similar problems before or you may know someone else who has come across a similar problem. In addition, you're likely to allocate the correct time to a problem quickly before going back to the drawing board. You and your team can also discuss better strategies which will result in fewer mistakes and bug hold-ups.
Some people may argue that getting two programmers to develop a single programme may slow down the project’s completion time. The common notion is that by having them work independently they can build different features for a week and at the end, there will be twice as many features. However, studies have shown that people working on the same program are only 15% slower than when they work independently rather than the presumed 50% and you will probably end up with 2 sets of 95% features that can’t be shipped. Programming together can increase the net amount of actually complete features that are shipped.
Some engineers find pair programming more engaging than programming alone and feel more confident with the solutions they come up with during the project. It also provides an easy way to get to know your colleagues better while you are in the office. Pair programming is a great way to reduce alienation in company and
Working as a team increases positivity about a problem. Sharing problems can make engineers and developers feel less defeated and more positive about trying again. It also means that it is harder to procrastinate. They're less likely to be distracted which means more hours spent working on the project instead of just sitting at a desk eating up hours of the day.
Develops interpersonal skills
Collaborating on a project it can help a team appreciate the value of teamwork.
Paired programming may not be suitable for every personality. Introverts would not be suitable for the role of a driver because they have to be able to develop out loud. It’s highly social and interactive so it’s important to make sure that the pairing is right. Some people work better alone and some senior developers may not be keen on lowering their output while pairing.
If you pair developers with a significant experience gap it can be beneficial to both of them under the right circumstances. However, it can lead to the developer with the most experience taking over and dominating the whole process. The less experienced developer is just left to watch and the benefits of paired programming will be lost.
Getting started with paired programming
Are you considering implementing paired programming in your team? There are some steps you can take to prepare.
Talk about it with your team. If some of your team is reluctant, start small with a team of developers that are willing to try it out. Pair programming should be implemented not enforced.
Get the set up right. Make sure there is enough space for your developers to work. Cramming two developers in one person’s cube will make for an uncomfortable and less productive space. Use computers and desk configurations specifically for paired programming.
Don’t overdo it or under do it. Doing it in short bursts of 1½ to 2½ hours usually work best.
The pair of developers decide how to divide the work and they should switch roles often.
Have you used a paired programming before? What are your thoughts on it?