Just like many developers like pair programming, I like to pair in my role as a change agent. And when you think about it, most of the benefits from pair programming are not related to programming specifically.
Here are some of the often seen benefits from pair programming:
- Shared ownership of code
- Better flow
- Good approach for mentoring and knowledge sharing
- Fewer interruptions
- Increased discipline
- More fun
Except for Shared ownership of code, these are not specific for programming.
Better Flow
We have an improvement board with our tasks. Working together on a few tasks often works much better than working alone. Discussing ideas with someone usually leads to better solutions. Helping each other to complete what’s already started is better than starting something new. Pairing helps you stay focused.
Mentoring, Knowledge Sharing and Fun
You learn so much more working together with someone who has different knowledge, perspective and experience than yourself. And of course it’s more fun! And just because you don’t work with code, sharing is still important. Too often knowledge is stuck in one single person’s head.
Increased discipline
If I get stuck on an important but difficult task I’m very likely to start working on something else, something I find easier, something I can complete. Also, some days I have a lot of energy, some days I don’t.
Pairing with someone helps you stay focused on the important things. And you can take turns being the driver if energy becomes low. The result is also often better because you think different things are important and you encourage each other to improve. Plus, you can’t get away with shortcuts if someone is watching over your shoulder! 🙂
Observation
Change agents sharing goals and working on improvement tasks together get more done.
What about Mob Programming?
Mob programming strengthens many of the benefits from pair programming even more. Take fewer interruptions for instance. You are less likely to interrupt two developers pair programming than one developer working alone. And you will definitely think twice before interrupting a full team doing mob programming.
We have two development teams doing mob programming and have seen good advantages from that. Maybe an interesting experiment could be to try this approach with my team?