There are several questions asked when trying to adopt pair programming within a organisation. The most frequently asked question is, is pair programming more productive than a single programmer working on a piece of software. Firstly, before your organisation can adopt this technique they need to be working in a agile environment as this type of programming is a type of agile software development technique. In this blog, we will discuss the benefits and drawbacks of pair programming; thus, provoking the thoughts as to whether pair programming is suitable for your current working environment.
Firstly, let’s discuss what exactly is pair programming. This type of programming is an agile software development technique as mention above. This involves two programming working at a single workstation. One programmer “drives” writing the code while the other “navigates” reviewing the code while providing suggestions. Also, they pick up useful programming techniques along the way. The pair regularly trade roles so work can be equally distributed.
Now there’s a understanding of what pair programming is here are the pros and cons.
- Having two heads working on a piece of software means if one developer get stuck with a patch of code then the other can assist as they’ll be looking from a different point of view.
- Silly programming mistakes and defects can be eradicated at a earlier stage. This reduces the time spent debugging which leads to faster development time.
- It’s a good way of spreading knowledge across the development team. Likewise, if one developer is out of office then this doesn’t cause an impact to development as coding can still be continued by the other developer.
- It’s a good chance for new team members to get up to the required level as they can work with developers who have a greater understanding of the product.
- There won’t be a need for thorougher code reviews as the navigator will be reviewing the code in real time.
- There could be a disparity in skills which could potentially be a problem as one programmer would be doing most of the work as well as as wasting time constantly tutoring the other. The only time this acceptable is when a new member has joined; However, there shouldn’t be any mentoring.
- When programmers have a rapport these pair programming sessions can easily turn into a social session which means no development actually gets done leading to a decrease in productivity.
- More experienced programmers can try impose their ideas and views which can leads to more time being spent trying to settle disputes.