PairProgramming
Table of Contents
Introduction
Pairing is not mentoring, it's safe handling of heavy objects. #AgileMan
Some people don’t like pair programming. That’s ok. More power to them.
— Uncle Bob Martin (@unclebobmartin) 10. April 2019
Some people do like pair programming. That’s ok too. More power to them.
The two may, however, find it difficult to work together on the same team.If someone can add value during a review, surely they could add more value doing the original work. Reduce the feedback cycle.
— Scott W. Ambler (@scottwambler) 12. April 2019
- Try pair programming | Lucy Bain | May 21st 2015
- The Art of Agile Development: Pair Programming | James Shore
- Effective Navigation in Pair Programming | ThoughtWorks
- Pairing, Are You Doing it Wrong? | ThoughtWorks
Motivation
- Motivatation behind Pair Programming
- Knowledge distribution
- High quality, readability
- Team cohesion
Technique
- Change roles frequently
- Change pairs frequently
- Pair Programming Anti Patterns - YouTube
Experience reports
- My Experience with Pair Programming
- #DevDiscuss Pair Programming
- Pair Programming, The most Extreme XP Practice? | XP2016
- http://c2.com/cgi/wiki?PairProgramming
- https://twitter.com/mikealdo007/status/725025547697426438
- IEEE Xplore Document - The Effectiveness of Pair Programming: Software Professionals' Perceptions
- PP Coaching at otto.de | Holger Schmeisky
- Oleksii Fedorov on Twitter: ""I'm better programmer when I'm pairing with someone" - https://t.co/5zol8EBb2a"
Discussion
Positive effects
- Pair programming leads to a shared understanding of the code base. It automatically leads to better readable code as it avoids "clever" solutions which nobody but the programmer himself can understand.
- Has a team building effect, one can cover for the other.
- Junior developers could learn from senior developers, maybe sometimes even vice versa.
- When peers work together, they can help each other out and might come to better solutions then each one of them would achive by him or herself. The same concept applies for craftsmen, sometimes they need to work together to get something done.
- Jessica Temporal auf Twitter: "Been doing pair programming for a while now and it still my favorite teaching/learning method. For me it is also a way to keep focused on what I'm doing, since is harder to multitask when you have someone else with you on that period. #DevDiscuss… https://t.co/0qt4xHKd6h"
Challenges
- Patience: explaining complex technical concepts to junior developers can be a patience challenge.
- Synchronization: Different habit in respect of starting work, going to lunch, etc.
Unsorted
- Pairing, Are You Doing it Wrong? | ThoughtWorks
- 10 Ways to Improve Your Pairing Experience | ThoughtWorks
- Pair Programming Cheat Sheet - SolutionsIQ
- Fading Problems – Mob Programming
- Jason Lowenthal on Twitter: "New SimpleProgrammer blog post about Pair Programming: https://t.co/2TBgAF3vxr"
- Amos King on Twitter: "If you have ever had a code review that took long and ended with unhappy teammates you probably should have been pairing."