views:

267

answers:

9

During pair programming at our company, I'm the one who usually ends up talking the most. I usually think out loud my thought process. My partner sits in front of the computer and does the coding (typing?). I encourage others to think out loud so I won't end up tutoring my partner on what to do.

I got the most experience at our company (almost all of my coworkers' first job is at this company) so I think most of them are afraid of talking during the session. In the end, I feel like I participated in a teaching session instead of pair programming.

Is it normal for one person to do most of the talking during pair programming? Does anyone has any tips for me to encourage participation during pair programming?

+3  A: 

Ask questions, like "how do you think we should do this?"

Ray
+5  A: 

Questions. Instead of going "Well, I think that a dictionary would be the best structure to use here" go "Well, I think we need a good data structure here, as it's a critical path, and I'm not quite sure what would be the best, what do you think?"

The "I'm not quite sure" part, if done credibly, will help foster confidence on your pair and avoid it seeming a test.

Vinko Vrsalovic
Yup. Asking questions in a way and with an undertone that clearly suggests that you are not sure of something and would very much appreciate the other persons thoughts on it, is a great way to get the other person talking.
ayaz
So basically, hold back the answer that's in your head. I actually do this but now that I think about it, I might have given my answer too fast (I only wait a minute before I response). I'll try delaying my answer longer. See if it has an effect.
MrValdez
The operative phrase being: "if done credibly". If done poorly, it could come across as condescending sandbagging.
JeffH
I just want to add if you do go for the question/answer method, don't berate your partner if he/she chooses an inferior answer.
Andrew Weir
+1  A: 

Consistently ask and reask the same questions on what you would like to know. After a while they probably hear the question coming before you actually ask it and it will seem like simply talking instead of Q&A.

Or they might even start to realize what information might be useful to share according to your questions and surprise you by providing information you didn't even think of asking before.

Ruben
+1  A: 

Encouraging people to talk and think aloud is a difficult problem depending on what the onset is. It takes some "jelling" to do in order to get people talk in a pair programming situation or even in a project at all. If the company culture doesn't promote communication, you might end up with working buddies who are usually quiet.

In the issue of making people jell, let it take some time. After a while your teammates might get louder if their personality permits it. Have encouraging daily stand-ups. Arrange kick-off meetings, parties and whatnot that enables people to get loose and their stiffness off their shoulders.

Also there is beer… it seems to work in Danish work environments.

Spoike
A: 

One thing I have learnt during numerous interviews is ... 'don't underestimate the power of scilence!' What I mean is, if you ask a question say:

"what do you think of using a List instead of an array?"

and then just remain silent, most people feel compelled to break the silence, and generally (assuming that they heared the question) answer the question. This can be used to start a conversation on a particular programming point etc.. This might not work for everyone, but it gets me everytime!

TK
A: 

I might want to stop thinking the problem more deeply than just what is currently going on in the screen. Then if the talking pair has done his thinking and starts to go on with the program code, he would interrupt my thoughts. So we should get to a common design solution before I start typing onwards.

Also while the pair says something, I might think about the same thing at the same time already. The pair might feel that he does all the thinking while it wouldn't be true. And we cannot talk at the same time either. I could say "Yes, that is what I thought too", but saying that many times might be frustrating. I might consider some things obvious that doesn't even need further talking.

Asking about general ideas and then later suggesting some corrections and debating over them might be good.

Silvercode
+1  A: 

Typing on a keyboard takes a lot of brainpower: You have to plan what you want to type, then send commands to your fingers to hit the right keys, check the words on the screen, keep your ultimate goal in sight. Most people don't notice but that's one of the main sources for mistakes and why pair programming is so effective: Instead of less than half a brain, you get one and a half.

So if the person in front of the keyboard becomes mute, that's simply because of the effort it takes. If you notice they are overwhelmed, switch places to free their mind (and sacrifice yours).

If you can, get a video camera. This damping effect is quite obvious if you're not busy typing :)

Aaron Digulla
Interesting idea on the camera. I'll see if I can set this up.
MrValdez
A: 

As the experienced person, this is probably natural and desirable. I might suggest taking up doodling to open some space for them to inject their thoughts.

kenny
By doodling, do you mean writing on the whiteboard about the code during the session?
MrValdez
Just a pad of paper is all I meant, half joking. Just let things happen, I'm sure your thoughts and experience are appreciated.
kenny
+2  A: 

One thing I once did was to sound deliberately unsure about stuff I was actually pretty confident about. When you do this people start engaging with it as if it's a team problem that you're working together to solve. Ask them what they would do. Be supportive if you agree with them, have a discussion if you don't. If it turns out they were wrong go out of your way to demonstrate that their participation was useful even though they were wrong and that being wrong is "totally cool and necessary part of the process". Also talk slower or more quietly if you think your voice is overbearing at all.

Other thing is, is this a problem? You might be concerned they that are settling into a submissive role but if you really do have more experience than them there might be no harm in that.

You could do the typing instead of course.

Ollie Saunders
+1: Great post. Great idea.
Jim G.
Wow. Sounding deliberately unsure when you really are sure is the oldest douche-trick in the book. It's always obvious, and if your partner is at all intelligent, it will be insulting. If your partner is pretty dumb, they won't even notice, in which case it will take longer to get to the conclusion that your code was right in the first place. Honesty is best. If partners can't argue passionately for code without artificially creating obviously fake handicaps, the partners are poorly paired.
Jonathan Sterling
Why is it insulting?
Ollie Saunders