a violinist learns to program
Pair programming is a hot topic these days - everyone knows it leads to better code - but it's also one of the most difficult things to do. At Makers Academy, where I learned to code, we only did pair programming , so here's my two cents worth of advice for being a great pair partner.
For newbies to pairing, the most important is to understand the driver/navigator roles. The driver is the one typing the code, the navigator sits back and researches, proofreads, and maintains a global view of the code and the project's direction.
1. Recognise that pairing is hard
Pairing is an intense relationship, summoning all your powers of ingenuity, communication, humour, and code. If you find it hard, or even just tiring, it's because it is hard and tiring sometimes. But you can also make it easy with the right person and the right set of practices.
2. Listen more than you speak
I guarantee if your focus is on listening more than you speak, the result will probably be a 50/50 split. Most of us love to focus on our own ideas without really being present to the person next to us.
Listen actively: listening doesn't mean you're silent but inattentive. It's a very powerful act requiring your full attention and presence to take in what the other person is giving you.
Exception: if you are very quiet generally, you may in fact need try to speak more than you listen to get that 50/50 split.
3. Ask questions - don't command
Bad: 'Assign that variable to equal "potato".'
Good: 'What do you think that variable should point to?'
Questions make your pair think and open a dialogue. Telling them the answer just makes you look superior.
4. Switch roles every 25 minutes
This is probably the most important skill! It's easy to be a keyboard hog, and it becomes really annoying for your pair to have to request keyboard control. Every 25 minutes is a fair split, and it will keep you from getting in a rut.
5. Take regular breaks
And make them good breaks! Play music, meditate, go into the garden...do NOT code without your partner in the breaks! You're in this together.
5. Give feedback
Ouch. This is hard. But so worth it. Full disclosure: I'm bad at giving helpful and kind feedback, so I'm not going to offer much advice here. But a good one to start with is 1) what went well 2) what can we improve for next time
6. Don't pair 100% of the time
Like I said, pairing is intense. You'll need some alone time to code so make sure you get that too.
7. Don't interrupt
Interrupting == you weren't listening. I don't mean the kind of interruption that takes the other person's idea and enthusiastically expands on it. I mean the kind of interruption that abruptly changes the topic of conversation. This says that you don't value your pair's opinion.
8. Say yes
In the time it takes to discuss whether it's worth trying something, you can often just do it. Saying yes creates a positive atmosphere where your pair is respected. Arguing about it is just, well, arguing.
9. Be mindful of your body language
Is your back to your partner? Is your computer screen angled away? Do you never look at them? You want to create an atmosphere of inclusion so your pair feels respected and welcome to comment.
10. Give high fives
Just completed a mother of a mission? High five! You go through the lows together - make sure to celebrate the highs.
Have some more suggestions for great pairing? Comment or sent a tweet my way!
Keep your eyes peeled for a post on remote pairing!
And want a little laugh? https://www.youtube.com/watch?v=dYBjVTMUQY0