Ultimately I have heard a lot of discussions about pair programming, usually contesting its importance, when it is necessary and if could be replaced by code review.
Thus in this post I will give you my thoughts and experiences about that.
Commonly the results of Pair Programming are associated with code quality but from my experience I would say for sure that it are not the main benefits of it, there are 3 other results that are much more importante and irreplaceable:
- Enable new members of a team be productive in the first day of work: Even technically capable of contribute, new members of a team do not have the business domain context necessary to fix bugs or develop new features for a product so pairing with a team developer enable the new member to contribute at first day and also speed up his on boarding process.
- Avoid silos of knowledge: When a team have at least 2 developers working in determined part of the code or business context it, enables developers to have some days off without block the team since always will have other person with the necessary context to continue the work.
- Unblock developers stuck in some problem: As a developers, there are times we need to solve complex problems and when it happens is extremely helpful have other person to help find a solution. Just know that you are not alone sometimes is enough to gives you the courage to challenge the problem.
Do you realized that the 3 main benefits presented are related to share knowledge and not about quality code?
Thus, if you ask me:
What is the importance of Pair Programming?
Answer: Share knowledge!
Is Pair Programming replaceable by Code Review?
Answer: No, because code review do not enable new members of a team be productive in the first day of work, do not avoid silos of knowledge and do not unblock developers stuck in some problem.
When should I use Pair Programming?
Answer: Everytime that share context or knowledge could help solve a problem.
Well, that’s it folks, if you find it useful, click on the heart and share to help spread the word, and leave a comment below, I will be happy to know your thoughts about.
Senior Consulting Engineer at ThoughtWorks