some notes on pairing/ pair working/ pair programming.
Pairing is much more than just getting together to complete a task: it’s an opportunity to strengthen relations with your teammate; a chance to teach and learn, not only technically, but also culturally; to understand what your partner craves, what motivates and what discourages her/him.
- don’t centralize driving – let the less experienced partner also take point
- manage focus together – incl mechanisms/ hacks like pomodoro
- avoid working alone
- alternate concentration and relaxation
- give context
- learn to deal with disagreements
- be ready to learn and teach
- give and receive feedback
- improves focus
- fewer defects
- business continuity
- fatigue, energy spent
lesson from improv
How to avoid “paragraphing” when talking. Learning to speak in half-sentences, leaving room for the other to take the idea in an unexpected direction.
When performing improv, the flow on the scene might go in any direction, but it definitely won’t go the direction that you have in mind. No one else can see what’s in your mind, and they’re not working off your script. If you try to constrain them to your script, the scene quickly comes to a halt.
Instead, a big key to successful improv is to provide the other person with as many options as you can. …. I found it helpful to avoid thinking too far ahead, as I would get attached to my story line instead of our story line. By providing options to the other people in the scene, I was also providing options for my future self. And I was encouraging them to maximize the options they provided me. The resulting explosion of possibilities made every improv response much easier and more natural. It was a lot of fun when we achieved that level of flow.
Pair programming with test driven development is, for me, exactly like that.
- it’s “slower” than solo coding
- if it’s not fun, you’re doing it wrong
- it’s intense – take regular breaks
- you can always learn from your pairing partner
- pairing is harmful to the ego