mercredi 4 janvier 2017

Pair programming

I appreciate pair programming more and more. It was a controversial practice for me. I used to find uncomfortable to share my computer, my tools, my personal universe with someone. Yet this practice is really powerful. Benefits:

  • It brings more focus. Having a pairing partner, I'm less prone to procrastinate. Even better, I feel like we are less likely to be disturbed by other people.
  • You catch more typos before running the compiler and / or the tests, hence save sensible amount of time
  • It's the only efficient way to share practices like TDD, shortcuts and habit that both pairing partners use to be productive
  • You practice code reviews on the fly, which is less boring that doing them later (you know later can mean never, don't you?)

It's not natural to feel comfortable with pair programming. Here are some advice I can think of :

  • coding dojo is a "safe" way to experience pair programming. However, they attract XP enthusiasts that may already know or use pair programming. You cannot force people to do coding dojo.
  • use a timer to switch and do breaks. Consider pomodoro technique. I use tomighty.
  • if you are more comfortable with pair programming than your pairing partner, pay attention to include her or him in the process. Force yourself to ask questions, ask how does he or she feel. Beware of silence. It's pair programming, not rubber ducking.

I know there is a more radical technique in the field today, called mob programming. I'm sure it has benefits in some thorny cases. As I am not a practitioner myself, I don't think it is something you do systematically. And I prefer learning to walk well before running.

What are you telling to your boss to do pair programming? Nothing. Just do it, and measure improvement. You may not be 2 times faster, but you will be faster and improve the overall quality of the code.