Pair Programming has been around for a while now, but many teams that I work with are still hesitant to try this for a number of reasons. On the surface, it feels like common sense to pair people together so they can collaborate and share their knowledge. On the other hand, if you are dealing with some very experienced and/or skilled engineers, there is probably a good chance that you will need to navigate the personalities and their quirks also. I would like to quickly share a few benefits that I have seen from teams that have successfully applied Pair Programming and hopefully encourage you to give it a try.
Potential Benefit #1 – Discover a good mentor
Often times, we think that a very seasoned team member with years of experience should be the best person to mentor the less experienced people, but this may not always be the case. It really depends on the situation. It is quite possible that your younger/less experienced team members may actually have specialized knowledge about a certain tool or process that he/she can share with others.
Potential Benefit #2 – Who needs help with “people skills”?
When you pair highly-trained and/or highly-experienced people together, you will soon discover who has the ability to communicate well and who might need help. In today’s team-oriented organizations, it is in our best interest to coach our teams so that everyone is equally adept in working with others, and it usually starts with communication. By “communication”, it does not always mean that we should say the first thing that comes to our mind; if we find an issue with someone else’s work, what’s the best way to share this information with others? It will likely depend on many factors, and quite often, some of the most technical people struggle with these types of situation in my experience.
Potential Benefit #3 – What skill gaps exist within your team?
An ideal high-performing team, in my opinion, consists of “T-shaped” individuals with broad technical knowledge but also deep skills in specific areas. This also means the team should know how to work together as a team, not just a group of individuals doing their own thing that are somewhat related. When you pair people together to accomplish specific goals, you will learn the strengths and weaknesses of your team as a whole, which should help you decide if the team can benefit from a more extroverted person, a more process-oriented person, or something entirely different.
To close out this short discussion, most of the time when you consider pair work, we think about knowledge transfer and improving product quality, but it may be worthwhile to also pay attention to the other possible benefits you just read about; you may be surprised at what you learn!