Pair programming woes
July 31, 2017 11:37 AM   Subscribe

What the fuck. How does this work!?

So I recently started an orientation for my new job where we do LOTS of tutorials, codelabs and small projects. The projects are given to us and we are assigned a partner and can structure our work and time however we want. The vast majority of people pair program through all the tasks together, which kind of makes sense because we're all trying to learn new things.

But something about the way this works is driving me up the WALL. I can identify a few problem areas:
- my desk area is crowded, so we work at my partner's desk. It's a standing desk. I hate standing desks, however good for me they are, and feel tired after a few hours of this. There's nowhere else to sit but a very uncomfortable bench.
- the room is loud! Because 30 people are pair programming! How are any of them paying attention??
- my partner is super committed to pair programming at the same desk but super reluctant to share with me what's going on... so if I'm looking up something to help on a particular task and he keeps moving, I ask what's going on (broad questions and very specific questions) and get super unhelpful replies, like a 3-second explanation and then more silence. Why does he want me at his desk... ? He's very aloof which makes things hard.

The only time I felt like I was actually learning anything was when I was sitting at my own desk with headphones on writing up some pieces of the code on my own. I'm so physically and socially uncomfortable. How is this supposed to work? I figure if we are going to pair program (which this truly is not) we should take turns "driving," but so far when I take the wheel I don't get much engagement from him. I'm really bored and feel like I'm wasting time because it's hard for me to internalize what I'm learning in his awkward environment. I feel like I'm lacking some communication skills and having a hard time with this learning style. My partner also doesn't listen to my suggestions (or the facilitator's instrictions) on when to review code, etc., which makes me feel uncomfortable because he has the whole code base and I really can't help debug because he's switching windows back and forth and I don't know what's going on. (We don't use git so the workflow is hard.)

I would really appreciate advice both on how to potentially fix this and how to prevent this mindnumbing scenario for next time. I'm not a great leader even in the best of circumstances so when someone is both impatient with me and also leaving me or of the process I don't really know how to assert myself effectively.

Also, I know pair programming is the hotness and I also totally see how useful it can be, but I'm REALLY having a hard time participating effectively also because noise and social presence both have a way of switching my already ADHD brain off. There's also the whole thing of my partner kind of nudging me out, but I also kind of feel like pair programming is more useful when you're more comfortable with the subject matter, instead of trying to learn new things... ? Maybe it's just how my brain is used to doing things right now. I'm very irritated but I also want to do better, because the point of these exercises is teamwork. I have some issues with wanting to be liked and not wanting to expose my lack of experience so I'm sure I'm not the best teammate in the world.

Hope me be an industry developer who doesn't look like an idiot :(
posted by stoneandstar to Work & Money (17 answers total) 6 users marked this as a favorite
 
I think pair programming is often suboptimal too. Here are some suggestions.

1) uncrowd your desk so your paired person has room.
2) with standing desk person ask if you two can sit for the session
3) if you have a laptop try pair programming in a conference room away from the din
4) switch up: if you're more comfy with the big picture, let them type. If you're better with the details let them focus on the big picture.
posted by zippy at 11:50 AM on July 31, 2017 [2 favorites]


Who is running the show ? (who paired you with this person, who's giving you assignments and reviewing your work etc etc) Have you talked with them and raised concerns ? Do you know what their goal is for on-boarding/indoc'ing you this way ?

nb I'm no fan of pair programming as a rule. But having a more experienced person sit down here/there to walk through design and flip a few pages of code up on the screen is more my speed.

In true ask "DTMFA" style, I would be irresponsible to not say: there are plenty of other programming jobs that aren't like that. This may not be the right fit for you.
posted by k5.user at 11:50 AM on July 31, 2017 [3 favorites]


I think you have a bad partner, unfortunately, by which I mean that he does not know how to talk about programming.

Since this is an orientation thing, I'd probably just fake my way through it, but you can try to improve things during orientation by:

- Working at your desk, even though it's crowded. It doesn't sound like it's any worse than it is at a standing desk where it's loud.
- Asking him followup questions when his replies aren't telling you anything. Ask him to draw a diagram or ask him if the diagram you're drawing is accurate. Get him to look away from the screen.
- If you guys are doing TDD, do the trade-off game: First, you write a failing test. Then, he makes it pass, then writes another test. You make it pass, then write another test, etc.
- Call the facilitator over often and ask them to look at your stuff and tell the both of you if you're on the right track, just to get another person involved.

Pair programming is actually very helpful when you're learning about new things because you don't get stuck nearly as often when there's two people looking at a problem. I hope you have better luck next time!
posted by ignignokt at 11:50 AM on July 31, 2017 [2 favorites]


Pair programming can heavily depend on your pairing, as you're finding out. Ping Pong programming might help force things to be a little better, though it won't help with the environmental factors.
posted by Nonsteroidal Anti-Inflammatory Drug at 11:52 AM on July 31, 2017 [1 favorite]


Given that communication is completely broken down already, maybe think about using screen sharing / remote tools and a stereo headset and each working from your own desk?

My wife wanted a standing desk and I was enthusiastic about it but we found her a rolling ergo stool so that she could still sit if she needed to. They aren't that pricey.
posted by BrotherCaine at 12:00 PM on July 31, 2017


I work as a consultant and have pair programmed 100% of the time for the last three years.

It sounds like you have a really bad pair. I'm so sorry.

* Rotate pairs. Having the same partner for a long time is a drag. "Pair fatigue" is definitely a thing. See if you can get your supervisor to mix up the pairs every morning.
* Change drivers. If someone has the keyboard for more than 20 minutes, something is wrong. When you're not doing the typing it can be hard to stay engaged.
* Take breaks. Pairing can be very intense and exhausting. Set a few times during the day that you will take breaks. Walk around the block, etc.
* Stop pairing. For a little bit. Take half a day and work solo. It can help the ramp up go more smoothly.
posted by thebigdeadwaltz at 12:03 PM on July 31, 2017 [7 favorites]


I'm also not a fan of pair programming. I physically lose my ability to type when someone is staring at me! That said, I've had some amazing experiences, but many many more that are painfully painful. I found it all depends on the setup - is it one subject matter expert and another that's trying to get up to speed? That has a different dynamic where both are working together to get a task done, for example. I've also found it useful to grab a small room and laptops and sit such that you can discuss and point to bits of code, but otherwise work independently. But like anything - as humans, we work better with some people than we do with others.

That said, since in general my experience has the bad outweighing the good, I would probably not take a job where this was the primary development paradigm. If that's the case here, maybe its just not a good fit. However if this is temporary, well... it's temporary?
posted by cgg at 12:03 PM on July 31, 2017


All great comments so far, I only want to add that you're not supposed to stand at a standing desk all day! If you google "alternate sitting standing desk" there is a lot of information, generally balanced between desk manufacturers ("stand all day!") and ergonomic people that say to work your way up from ~10min per hour to a maximum of 2-4hrs/day, switching between standing and sitting the whole while. I think clearing your desk so you can drive sometimes is probably the best first step and an easy win.
posted by rhizome at 12:24 PM on July 31, 2017 [1 favorite]


Yeah, he's bad and you gotta drive more. Could you get a second (high-up) monitor for your desk so that you can sit at your desk and he can stand and watch?
posted by mskyle at 12:54 PM on July 31, 2017 [2 favorites]


My husband does paired programming, and they switch up pairs every single day as a rule. One person "carries context" of the story they worked on the day before, and the new partner becomes a fresh pair of eyes. So on any given day, half the programmers are working on the same thing they did yesterday, and the other half are rotated in.

He's definitely got a few annoying apples on his team, and I'm sure this has kept him from choking the shit out of at least one person he works with.
posted by Serene Empress Dork at 1:37 PM on July 31, 2017 [1 favorite]


Can you tell if your pair just doesn't want to be pairing, or if they are acting in good faith but are just doing it poorly? If it's the latter, you may have some luck if you can get them out of "typing mode" to actually talk you through their thinking. Many people have a really hard time literally coding and talking at the same time. When I'm pairing and driving and I feel like I'm not doing a good job of communicating with my pair, I find it is helpful to take my hands off the keyboard and stop and explain myself, and not to start again until we both feel like we are up to speed.

Also, yes, definitely switch pairs often.
posted by enn at 2:45 PM on July 31, 2017


It sounds like a lot of your problem is a bad partner (not that he's necessarily a bad person, just definitely not a good partner FOR YOU.) Can you talk to your supervisor about switching partners around? I would also just take some time to clean off your desk and insist that you need to work there. It is perfectly fine to say "I'm sorry, it's not going to be possible for me to use the standing desk for long periods of time and I need to sit."
posted by rainbowbrite at 3:24 PM on July 31, 2017 [1 favorite]


1) If standing isn't working for you, you should be able to discuss it with your partner to find some accommodation. Maybe they are OK with lowering the the desk while working with you.

2) It's not unusual to find an open workspace is difficult for programming. It sucks, but maybe you can try to muffle your ears just a little bit, so you can talk with your co-worker while reducing the worst of the background noise? Also, standing may be increasing your exposure to the noise.

3) Your partner is not doing well. They need to communicate more, and to embrace the collaborative nature of the situation. You might try to encourage them by suggesting at the beginning of the session that the two of you engage in more of an ongoing dialogue. You might ask your supervisor to attend, observe, and provide feedback on you and your partner's performance (WITHOUT criticizing your partner, at least not yet). Part of your responsibility is to encourage co-workers to learn this skill along with you. If that sounds like a lot of work, it kind of is! But it's also a good way to form a working relationship and help someone grow.
posted by yath at 4:47 PM on July 31, 2017


standing desk protip: bring a barstool.
posted by j_curiouser at 5:08 PM on July 31, 2017 [2 favorites]


my partner is super committed to pair programming at the same desk but super reluctant to share with me what's going on... so if I'm looking up something to help on a particular task and he keeps moving, I ask what's going on (broad questions and very specific questions) and get super unhelpful replies, like a 3-second explanation and then more silence. Why does he want me at his desk... ? He's very aloof which makes things hard.

I missed this initially. Your partner is not actually participating in the process. You're bending over backwards to accommodate them and take the fault, but they're doing jack squat for you.
posted by zippy at 6:26 PM on July 31, 2017


Response by poster: Gahh thanks everyone. Disheartening but since he probably is not really trying maybe I'll just be more direct with my vision of how things should go and see what happens.

Also just to clarify, my desk is t cluttered, it's just in a much more cramped corner than his. Still, I should ask to mix it up so I'm not so drained by midday.
posted by stoneandstar at 8:12 PM on July 31, 2017 [2 favorites]


One option might be to "pair program at a distance" - something like a Skype call with screen sharing. That way you can still look at each other's work and talk - but you get to retain your own physical space: standing/sitting cluttered desk/clean desk and so on.
posted by rongorongo at 5:12 AM on August 1, 2017


« Older Train a dog to romp   |   Where Do I Find Photography/Drawing Students For... Newer »
This thread is closed to new comments.