Every time I’ve had the chance to talk in detail with people who hate pair programming (where two developers work jointly on the same task, usually sharing one computer, screen, and keyboard), I discovered that they were doing it in a way I too would have hated.
Below is a list of mistakes I’ve heard or seen real people make, including many that I’ve made myself. If you think pairing is not for you, first check to see if you and your team have solved all of these problems.
How to pair badly
- Hog the keyboard – You’re obviously superior to your partner. Control the action at all times.
- Ignore your partner – That noise that sounds kinda like useful suggestions? Probably a mosquito.
- Ignore yourself – Speaking up for your own interests can’t possibly be helpful. Suppress, suppress, suppress!
- Sit where you can’t see – You’ll be able to read the code when it’s your turn. If you still care then.
- Sit where you can’t reach – Why be ready to take action? There’s probably not much you can do anyhow.
- Take a back seat – Don’t sit next to your partner. Sit behind her. Then she doesn’t know when your eyes are closed.
- Use a regular desk - Desks set up for one person work even better for two. Plus, the furniture police might catch you!
- Don’t explain – Your partner, who is psychic, can just read your mind. Just keep on typing!
- Don’t listen – You already know what your partner is thinking. And it’s boring.
- Don’t ask – No, there isn’t a better way to do it, and your partner never forgets anything. So hush.
- Interrupt frequently – ZOMG! They made a typo! You’d better tell them right now. They’d never notice otherwise.
- Get distracted – Look, new mail! Hey, an IM! And check out Slashdot! Wait, there’s coding going on?
- Daydream - Since you’re not really there to help, it’s ok to figure out exactly how many light bulbs there are in the room.
- Be a back-seat driver – Your partner always wanted to be a stenographer. Keep telling them just what to type.
- Don’t take breaks – Everything is better when you’re tired and cranky. Especially teamwork!
- Work too much – It’s not what you create. It’s how many hours you spend at your desk.
- Ignore ergonomics – The hunchback look is back in fashion. And who doesn’t like pain?
- Betray trust – During, taunt about minor knowledge gaps. After, tell everybody how dumb your partner is.
- Refuse to learn other tools – Emacs is obviously superior to whatever junk your team uses. To pair with you, they should all learn it. Now.
- Don’t rotate pairing partners - If pairing for two hours is good, then six weeks with the same person must be way better!
- Be arrogant – Seriously, what could you learn from that other guy? You know already: nothing.
Which ones are your (un)favorites? And what ones are missing from this list?