Response to “Why Pair Programming Is The Best Development Practice?”

This is a response article to “Why Pair Programming Is The Best Development Practice?”.

Introduction

The author [1] made a very good job describing pair programming and demonstrating advantages and some disadvantages. However, the original article [1] was too optimistic about the benefits of pair programming without taking into account some important problems that may arise.

In the following paragraphs we will discuss about advantages and disadvantages of pair programming followed by a conclusion at the end. Most advantages are already mentioned in the original article but in this response article they will be summarised trying to underline the most important arguments for pair programming. The main contribution of this response article is the discussion about disadvantages. Many negative aspects of pair programming are not mentioned in the original article, so there was a need to provide some extra arguments against pair programming in order to have a broader range of ideas about this programming technique.

Discussion about advantages

Most pair programming advantages are already mentioned in the article [1]. Pair programming can be a very good way to reduce errors and bugs in code, as two pairs of eyes are always more efficient than one. Moreover, two programmers can solve a demanding problem more easily [3], especially if they combine different skills and programming techniques. Teamwork ability, communication and cooperation skills are also improved by pair programming. Pair members learn how to work together under any circumstances and find solutions to any problems under consensus. This is very important especially for large-scale projects where teamwork and cooperation between group members is essential. So, pair programmers have already an advantage when working in such projects as they can handle the situation more easily. Finally, pair programming is an excellent way of exchanging knowledge and tutoring inexperienced programmers. A young programmer can be benefited when programming alongside an experienced one, thus helping him improve his skills much faster.

Discussion about disadvantages

Pair programming may be advantageous for many people, but not for everyone. Many people are more productive when programming on their own than working in pairs. The reason for that is that they do not like to think out loud or they just need some time to read code and think on themselves. And for those who claim that communication skills can be improved and that everyone can become familiar with pair programming the answer is simple: Not everyone can have excellent communication skills in the same way not everyone can become an excellent programmer. Therefore, not everyone can be equally productive when working solo and when working in a pair.

Moreover, pair programming requires an excellent synchronisation between pair members, even in the simplest things. Both pair members have to start and stop working exactly at the same time; they should have break together and they should get their day-offs or holidays together [2]. So, what is going to happen if one of the two has to be absent for a few days? If the other guy keeps working without its pair, then that kind of programming will not be very…pair. On the other hand, supposing that another programmer comes as a replacement for the absent guy, it will take him some time to adapt to the project and become familiar with his new pair. And what if there not available programmers to replace the absent guy [3] or all of then work with their own pairs? So, pair programming in some cases is ineffective as a number of problems may appear.

Conclusion

In conclusion, pair programming is something that everyone should try. Some may find it extremely interesting or helpful; some others may hate it. This is absolutely reasonable as every person has a unique personality and a unique coding style. However, the reason for writing this response article was to point out some negatives aspects of pair programming that were not covered in the original article. In my opinion, the author has overrated the benefits of pair programming while he/she has not taken into account some problems that may arise. I personally believe that pair programming can be very useful in some circumstances, such as when tutoring an inexperienced programmer or when writing a crucial part of a program and more than one persons are necessary in order to find the optimal solution. But in most cases coding is a lonely job…

References

[1]. https://blog.inf.ed.ac.uk/sapm/2014/02/17/why-pair-programming/

[2]. http://mwilden.blogspot.co.uk/2009/11/why-i-dont-like-pair-programming-and.html

[3]. The Costs and Benefits of Pair Programming – Alistair Cockburn, Laurie Williams – Extreme programming examined – 2000 – ISBN:0-201-71040