Your experience with Pair Programming?

I noticed this post:

I remember when I first heard about it college, our class all collectively giggled because it sounded so ridiculous that we thought the prof was joking. One of my favorite ways to work is on a 2 man team for the same task… but actual Pair Programming where you’re both on the same computer? That’s just unimaginable for me and gives me flashbacks to first grade… yet I’ve heard of top companies who hire top talent doing it.

###Have any of you experienced Pair Programming? What was your experience like?

Edit - For those who haven’t heard of it:

Never heard of it, and it sounds rather nightmare-ish.

:slight_smile:

1 Like

Yeah… sorta like Open Office plans. Another fad I don’t understand.

I mean I guess it could cut out the goofing off time but either way I wouldn’t want someone collaborating with me on my code…

We do this a lot, though we use screen sharing to do the pairing so we don’t have to sit at the same computer. It actually has helped us write some of our more complex components and having a second opinion right there to help you think of a different way to implement the given task has 1) helped me learn new techniques, and 2) spot bugs while writing our tests/code before we get to the point of compiling.

This I think I might be able to do, but the same computer with someone looking over your shoulder… that would be too much I think.

I don’t know, it really isn’t that bad. In fact, we usually take turns coding. So you see the other’s perspective on how they think the problem should be solved. We don’t use it daily, but when we are getting into a piece of code we are unfamiliar with, we usually pair with the person who was in that code section last.

1 Like

I first came across references to pair programming back in the 1990s but have never actually worked that way.(unless you count one time when someone else was writing a program and had no idea of how to tackle it and I basically told him what steps the code needed to perform in order to get the desired result in the most efficient manner - he wrote the code to do what I told him it needed to do and between us we got it working quickly - can’t remember which programming language it was now but it was one I never learnt so it would have taken a lot longer for me to learn the language and write the code myself).

Yeah… sorta like Open Office plans. Another fad I don’t understand.

Pair programming, shared computer sounds nightmarish to me too - Open Office plans, less so? I can see them working in plenty of environments (I say, as I sit happily in my small but newly painted/carpeted office, at the end of a second floor hallway no one ever comes down, happily removed from my 3 person shared office, without any hypocrisy).

I mean I guess it could cut out the goofing off time

I guess that’d depend on the people. If you got to programmers who were friendly it might devolve into no work getting done at all, haha. I’d probably never get over being nervous at someone hovering, and conversely bored when watching them do it, I don’t know. Sharing projects is one thing, literally sharing the computer is another.

Besides… when would I SitePoint? When… not working???

2 Likes

See, I’m one of those people who are easily disturbed and I hate needing headphones to escape into my own space because I very much dislike being disconnected from the world. About once a year I get on a kick I want to buy nice headphones, but I always end up looking for the opposite of noise cancelling where you can hear your music fine but you can hear everything else too and only you can hear your music. I like hearing what’s going on around me, but they don’t really make headphones for that…

I think SO has the perfect idea.

Where I work we have something similar where our walls stretch almost to the ceiling and we have doors. But they are the dreary grey cubicals, not the fancy trendy ones at SO. :smiley:

@mawburn Apple’s Earpods, work exactly as you describe. They sit firmly but comfortably in your ear, and don’t entirely block outside noise. The original earbuds became a safety concern when they realized so many people were using them while walking/running so they designed the Earpods to enable you to still here ambient noise.

@mawburn I don’t think of an all-day everyday activity when thinking about “Pair programming,” but more a part of a day. Working on a given project you’d have days where you’d “Pair program,” so it would be like a few hours max. The concept from how I understand it is for collaboration and growth. Programming at it’s core is solving logic problems as efficiently as possible, and having another set of eyes can be greatly helpful in this endeavor. It’s one technique, hopefully used in addition to many others, for career development. How do you feel about code reviews?

2 Likes

Professionally I’ve done it a few times as a training device. One of the companies we used to share work overflow with would occasionally send their junior developers to me, and we would alternate every 45min or so.

Though with client-based builds it’s not super constructive since you can’t really stray too far from what the client wants.

When I had coder roommates, we would all code in the living room and take turns streaming our dev screens. That was even more fun that it sounds!

These Bose earbuds are the ones I use. They sort of sit on the ear and leaving the ear canal open so you hear everything around you, even on high volume. The quality is insane.

1 Like

Wow thanks @toddsby and @OzRamos, I’ll definitely get one of these soon or maybe I’ll start another search. I think I found the Bose ones once before, but they were a bit more expensive.

We actually have conference rooms that are designed just for this! It is a really fun way to see how others tackle a task.

1 Like

It can be very useful.

In particular we’ve used it either when someone is leaving - another dev will drive while the departing dev sits alongside to explain and guide. Spreads knowledge about specific sub systems within the codebase amongst the rest of the team.

Even if no one is leaving the company it’s helpful to provide cover. Bug in your part of the code discovered while you’re on holiday is much less of an issue.

Our two developers here do that occasionally, though it’s not something I see them do too often (maybe once for an hour or so, every couple of weeks). It seems to work for them, though they are both long standing Visual Studio users, for whom that is pretty much the only tool they use - it may also have something to do with the lunchtime curry order…

I’ve never done it on a full time basis. Just one a couple projects, but one was a junior and one more advanced so there was a definite driver and co-pilot. I can’t imagine it with two “alpha male” type people trying to work together, especially if coding standards aren’t established.

You mean bullpens, or desk sharing? I did desk sharing for about a year. I worked from home three days a week, and was in the office two. Couldn’t stand it. I basically only got work done those three days because the two in the office were spent in meetings or helping other people with their problems.

We don’t have the pens as such, just desks with very low partictions between them, so you can talk to whoever’s on the opposite side without standing up. The office holds around 30-40 people, including a Service Desk taking calls, so it can get a bit on the noisy side. It’s not my cup of tea at all, as there can be a great many distractions at times.

Ugh. Worked in an area like that for a while, and they didn’t allow us to wear headphones. It really sucked trying to get any work done.

Never done pair programming but have worked on open office environment.

Pair programming seems flawed from the concept itself. It’s ‘paired’ because one programmer can not trust another programmer. One programmer is thinking of solution while other are looking for problems. It’s like a police car who’s behind you while driving 24x7. Second, this will slow the development efficiency. You can have the second developer work on another task and not just stare at another programmer’s screen. The part that’s wasting ‘stare’. I’m not saying another programmer should not look at other code. This is the reason why we have Code Review. Third, you are killing the innovations of the programmer. One programmer may have an idea but other programmer will disagree. The point of being paired is so that they will ‘argue’ or ‘dispute’ solutions… this is never a good thing especially when one programmer is much better than other.

Open Office is something I like but it depends on ‘friendliness’ of the co-workers. I used to work in that environment and we would just yell out ‘Hey Steve, when you gonna do ABC?’ and I get a reply back immediately. Or say something like ‘I’m completely lost can someone show me how idiot I am by looking at this code?’. But, if it’s at corporate company where you can’t speak openly then I don’t think it’ll be good.