Debunking the Myths of Pair-Programming

Pair-programming Myths

  1. Pair-programming is exhausting/not worth the effort.
  2. Pair-programming is best for ramping up new developers.
  3. Pair-programming slows me down from what I need to do.
  4. Pair-programming is okay for some bugs, but not others.
  5. Pair-programming is not for me.

Pair-programming Realities

  1. Pair-programming is an acquired social-skill that takes practice for others to learn to work with people.
  2. Pair-programming significantly shortens the time it takes to work on a problem if done right.
  3. Pair-programming is beneficial for all levels/experiences.
  4. Pair-programming creates better cohesion for your codebase and encourages a transfer in practices and knowledge amongst engineers.

What is Good Pair-programming?

Kent Beck, who originally coined the term, described two programmers working at different levels of abstraction. The idea was later expanded to the metaphor of navigator and driver:

What Pair-programming is Not

To continue on the driver/navigator metaphor, an ineffective caricature of pair-programming has one programmer firmly in control while the other sits quietly, doing little. This is the source of the misunderstanding that pair-programming does not add value. Such scenarios are common when working with more experienced programmers, or even between genders or ethnicity (Choi).

The Mechanisms of Successful Pair-Programming

1. The Rubber Plant Effect

People may criticize that pair-programming can slow you down if you’re paired with a novice programmer. Constructivist theory states that knowledge cannot be taught in the standard hypothetical bubble of passive information absorption, but must be built by learners during the learning-processes. According to the constructivist point of view, learners build understanding recursively from previous knowledge and experiences, with which new mental models are created (MIST 2015).

Is language necessary for human spatial reorientation?
  1. When we hear the right question, our brains make the necessary information available and the language module can then perform rudimentary inference and draw obvious conclusions.
  2. Even as an expert, questions are often asked in such a way that you’re forced to deconstruct assumptions already accepted and in the process, a deeper understanding is gained.

2. Pair-programmers Notice More Details

How many times have you stared at the same lines of code for hours until you have realized a parenthesis is missing or a word has been misspelled? If we don’t know what to look for, we can stare right at it and still miss it. Research on change blindness shows that shows that people are remarkably poor at detecting changes from 2D images in laboratory conditions to real-life situations substitution one person for the other. In other words, we lie to ourselves all the time. Humans naturally are prone to be less-detail oriented; we remember the general ideas of a memory, but we’re liable to fill in missing details with what our brain assumes to be correct.

A Picture is Worth a Thousand Words 2002.

Conclusion

Pair programming is not something you get good at overnight. However, the best code bases I’ve seen are at companies that encourage pair programming. Growing together is what makes a project successful, so brave the unknown and give it a shot.

Sources Cited:

  • Wray, Stuart. “How Pair Programming Really Works.” Computer.org, IEEE Computer Society, 2010, https://www.computer.org/cms/Computer.org/ComputingNow/homepage/2010/0110/W_SW_PairProgramming.pdf
  • Eileen Fordham, Halley Freger, Amanda Hinchman-Dominguez, Alexander Mitchell, Daniel Rebelsky, Victoria Tsou, Earnest Wheeler, Zoe Wolter, and Samuel A. Rebelsky. 2015. MIST, The Mathematical Image Synthesis Toolkit. In Proceedings of the 46th ACM Technical Symposium on Computer Science Education (SIGCSE ‘15). ACM, New York, NY, USA, 599–599. DOI: https://doi.org/10.1145/2676723.2691878
  • Wade, K.A., Garry, M., Don Read, J. et al. Psychonomic Bulletin & Review (2002) 9: 597. https://doi.org/10.3758/BF03196318
  • Hermer-Vazquez, L et al. “Sources of flexibility in human cognition: dual-task studies of space and language.” Cognitive psychology 39 1 (1999): 3–36.
  • Choi, Kyungsub. (2014). A comparative analysis of different gender pair combinations in pair programming. Behaviour & Information Technology. 34. 1–13. 10.1080/0144929X.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
mvndy

mvndy

software engineer and crocheting enthusiast