It’s true that no man is an island, and this goes for software developers too.
Although our team work excellently as individuals, we like to use Pair Programming to create powerful, superiorly designed software.
What is it though? Put simply, Pair Programming is an Agile working technique where two programmers join forces on a single workstation. Armed with two minds worth of experience, problem solving skills and specialist knowledge to tackle a coding project, this method significantly increases code quality.
Taking short turns to write code, whoever is in possession of the keyboard and mouse is called the ‘driver’, and produces the code whilst the ‘observer’ reviews each line as it is created. This means that there will be two pairs of eyes on the work at hand, leading to extremely diligent coding!
For best practice, constant dialogue between ‘driver’ and ‘observer’ is essential so that both parties know what the other is thinking; ensuring ideas, feedback and solutions to potential problems can be bounced back and forth between each other.
“ I can’t afford to have two of my programmers working on only one piece of code; it seems like such a waste!” is the common outcry of managers new to this method.
It may seem expensive at first, but having two developers go through the code thoroughly as it is being written will reduce the amount of future feedback loops that result from other parties picking up problems in the code, which will save time. As well as this, some seasoned Pair Programmers will claim that they are able to complete work twice as fast than if they were working alone, due to being able to break through problems much quicker.
One of the most prevalent benefits of this method is the resulting learning and skill development. While they’ll obviously be learning techniques from each other, the developers will also be discovering the client’s technology and methodologies, and nothing is more stimulating for the brain’s learning process than discussing new ideas with someone else!
Pair Programming also helps to mitigate operational risk. By having two people working on the same code and fully understanding how it has been written, there isn’t a risk to the project should one of those developers fall ill or leave the company.
Watching over someone’s shoulder all day could become dull, but frequently switching roles throughout the day can help to mix it up a little, and often someone to collaborate and talk through problems with can make the whole experience more enjoyable!
Using the intelligence and experiences of multiple programmers – whether in a single pair or several – results in increased confidence in the validity and integrity of the software produced.
All Politics aside, we really are better when we’re working together!