• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Rant against pair programming

 
Sheriff
Posts: 6450
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Pair programming is harmful to worker productivity. Well, it's harmful to mine at least, and I don't even engage in the practice.

The office I work in, a cube farm, typically has several projects going on at once. One of these projects has decided to practice pair programming, whereas the others do not.

What this results in is that I get to suffer through eight hours of conversation per day right next to my cube. Certainly makes it difficult to concentrate on my own work to say the least. Sure you try to tune out the adjacent din, but you can't help but overhear it. And when you do, half the time the programmer in me is internally critiquing what they are doing.

In an effort to stop the insanity I have resorted to bringing in headphones and CDs... something that I have not required in the almost five years I've sat in this office. It's helped a bit, but really it shouldn't have to be my problem.

I suspect this isn;t as much of an issue in offices where everyone is pair programming, but when there's a mix of traditional programming and pair it can really be a distraction.

I wonder if the people who promote pair programming as a Great Thing have ever stopped to consider the effect on everyone else who may be unfortunate enough to be nearby and not practicing it.

Okay, rant ended. I feel better. Time to put on a new CD.
 
author
Posts: 11962
5
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I'm glad you feel better now

It is a well-known fact that having to listen to information that's irrelevant to your project hampers productivity. That's exactly why cube farms aren't too good for productive collaboration -- someone is always annoyed if you try to communicate effectively, that is, not via email...

PS. Alistair Cockburn has written extensively about the dynamics of communication in workspaces in his Agile Software Development.

And don't worry, you'll get used to it...
 
author
Posts: 14112
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Originally posted by Jason Menard:
I wonder if the people who promote pair programming as a Great Thing have ever stopped to consider the effect on everyone else who may be unfortunate enough to be nearby and not practicing it.



Just want to strengthen Lasse's point: the people who promote pair programming typically aren't people who promote "cubicle farms". Most I know actually promote the use of "team war rooms", that is, giving people who work on the same problem (i.e. developers from the same project) their own room.

In such a setting, overhearing the conversation of another pair actually can be quite powerfull (something Cockburn calls "osmotic communication"). If there is something going on in your team that needs to be critiqued, it's quite valuable to find out about that as early as possible.

It still needs to get used too, but in my experience it works out quite fine.
 
Jason Menard
Sheriff
Posts: 6450
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Originally posted by Ilja Preuss:
Just want to strengthen Lasse's point: the people who promote pair programming typically aren't people who promote "cubicle farms". Most I know actually promote the use of "team war rooms", that is, giving people who work on the same problem (i.e. developers from the same project) their own room.



How often does this actually happen? Space of any kind is often at a premium and it's just not always feasible to have "team war rooms". I would like to see more emphasis placed on space issues and environment when people are promoting pair programming. Or maybe enough emphasis is being placed on environmental issues by those who promote the practice, but simply not enough people are paying attention.

Of course i think half the problem is bushy-tailed young developers who are ready to hop onto the bandwagon of whatever the latest Great Thing is, without sufficiently exploring all the issues involved. I better stop now before I break into a rant concerning bushy-tailed young developers.
 
Sheriff
Posts: 17644
300
Mac Android IntelliJ IDE Eclipse IDE Spring Debian Java Ubuntu Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Jason,

I can understand your situation because I experience the same thing every two weeks. No, the people who are distracting me are not pair programming; I am. The people who distract me are the dozens of business experts who come every two weeks for JAD sessions. For two days I suffer through loud hallway conversations and people using phones in the adjacent cubes to conduct their work- and non-work-related business. But it's still the same thing you are experiencing: having to overhear conversations that have nothing to do with your tasks. Don't blame your loss of productivity on the pair programmers. Blame it on whoever is in charge of assigning people to cubes.

In this project, we work in cube farms. I also pair program (we are actually obligated by contract to do so). The folks in my cube (there are 3 people to a cube), and the folks in the adjacent cube, all belong to the same team. Other teams are similarly co-located. From time to time, we benefit from the "osmotic communication" mentioned above. It's not the ideal setup, but it's better than having everybody seated alphabetically or according to seniority (well, we have a bit of that too in that the team leads are all in their own little "offices", separated from the rest of the team). But you just make do with what you're dealt and do what you can to get the job done.
[ January 30, 2005: Message edited by: Junilu Lacar ]
 
Ilja Preuss
author
Posts: 14112
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Originally posted by Jason Menard:
How often does this actually happen?



I seriously don't know. What I know is that teams who manage to make it happen almost invariably report a considerable performance improvement.


Space of any kind is often at a premium and it's just not always feasible to have "team war rooms".



How costly is space really, compared to what the developers cost? How much improvement in team performance would you need to justify the use of a team room?

See http://www.sciencedaily.com/releases/2000/12/001206144705.htm


Of course i think half the problem is bushy-tailed young developers who are ready to hop onto the bandwagon of whatever the latest Great Thing is, without sufficiently exploring all the issues involved.



Yes. I also can sympathize with them, though - I once was one of them...

Seriously, I think they are also a great chance, because they are (obviously) open to try new things and probably interested in improving the working environment. They just need someone who helps them using that power more goal-orientedly and circumspectly. Or perhaps they just need some feedback, brought forward in a nice, respectful and constructive way.
 
author & internet detective
Posts: 41860
908
Eclipse IDE VI Editor Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Some background for my comments: My team does pair programming rarely (aka on request), but another nearby team pairs all the time. And yes, we have a cube farm.

I don't find the pair programming to be distracting because there are a lot of other more relevant distractions. Since the people who are pair programming are typically not of my project, it's easier to tune out. There's also personal phone calls and the like to tune out.

At the same time, there are phone calls/meetings and design discussions going on outside my cube for a few hours every day. I find it valuable to hear what's going on for my project. A few times a day, I will hear something on the phone or from a few people talking and have something to add or find out something that I should know about. I guess it has to do with your tolerance for working in a quiet vs noisy environment.

I wonder if the people who promote pair programming as a Great Thing have ever stopped to consider the effect on everyone else who may be unfortunate enough to be nearby and not practicing it.


Aside from the war room layout, the XP people tend to assume that the people nearby are on the same project. Whether they are developers, customers, ...
 
blacksmith
Posts: 1332
2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I strongly suspect that the issue is not that the pairers are on a different project, but instead that they are pairing and Jason is not.

When one is having a conversation oneself, it's easier to tune out other conversations. Solo programmers aren't having a conversation, so they can't work that way. I strongly suspect that noise is not a disturbing to pair programmers as it is to solo programmers.
 
Ilja Preuss
author
Posts: 14112
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Originally posted by Warren Dew:
When one is having a conversation oneself, it's easier to tune out other conversations. Solo programmers aren't having a conversation, so they can't work that way. I strongly suspect that noise is not a disturbing to pair programmers as it is to solo programmers.



My experience is different. Our team of 4 developers is PPing roughly 50% of the time, so rather often I will programming alone, whereas at the opposite computer there is a pair working.

As far as I remember, I actually needed to get used to it for the first few days to weeks. But now I don't find it to be distracting anymore. Most of the time I don't notice it at all, and for a few times a day I notice that a discussion is going on that I can contribute too - and do so.

I think the experience of my coworkers is quite similar.

So my point is: yes, it feels a little bit disturbing at first, but if you try it for a while with an open mind, and allow yourself to get used to it, you *might* actually find that you start to enjoy and even prefer it.
 
Jeanne Boyarsky
author & internet detective
Posts: 41860
908
Eclipse IDE VI Editor Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Originally posted by Warren Dew:
I strongly suspect that the issue is not that the pairers are on a different project, but instead that they are pairing and Jason is not.

When one is having a conversation oneself, it's easier to tune out other conversations. Solo programmers aren't having a conversation, so they can't work that way. I strongly suspect that noise is not a disturbing to pair programmers as it is to solo programmers.


Warren,
I didn't mean to imply that I talk all day On most occasions I am coding by myself around others who are talking. I go into my "programming trance" where I focus on the code. Interestingly, I am still aware of the peripheral noise.

At my first summer job, I shared a cube with someone else. I was coding and the real occupant of the cube was having a design discussion with someone else (visiting the cube.) I heard every word of their conversation and could have repeated the end of it back at any time. Yet, when one of them called me, I jumped out of my skin! Maybe you listen with different parts of your brain when you aren't involved in a conversation?
 
Jason Menard
Sheriff
Posts: 6450
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Some interesting responses. I do want to point out that I'm not blaming the pair programmers for disturbing me or anything. That's not really the point. I think what my feelings are, and what I can take from some of the responses here, is that environment is an important issue for developer productivity, and maybe one that's not paid enough attention to, either by management or even the developer's themselves.

I am getting something out of all this though. I get to listen to some tracks on some of my CDs that I normally skip over.
 
author
Posts: 799
5
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Greetings Jason,

My suspicion is that your pairing neighbors are probably talking a lot more than necessary--is this a constant stream of non-stop chatter? It probably is: occasional comments on the code and interactions should bother you no more than other cube talk.

Effective pairing shouldn't require so much gab. A lot of talking suggests they are (somewhat naturally) filling the spaces with too much social interaction. In this case, a bit of cognizance for the plight of neighbors is necessary. It takes some conscious effort, but a good pair learns to communicate far more via the screen. A few words here and there, and some grunts and gestures also go a long way.

You should at least talk to the pairing programmers and ask them what they can do to help.

-j-

ps -- cubes suck. Unfortunately they are the permanent result of young bushy tailed managers sucked into the latest Great Thing at one point in office history. ;-)
[ January 31, 2005: Message edited by: Jeff Langr ]
 
Warren Dew
blacksmith
Posts: 1332
2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Jeannie Boyarski:

Maybe you listen with different parts of your brain when you aren't involved in a conversation?

There is evidence for this.

Peopleware cites a study where a number of programmers, some of whom generally played background music and some who didn't, were separated into two groups. One group had background music, the other didn't. Each group included some of the programmers of each type, so some people got their preference and some didn't. The programmers were tasked with writing a program that did a certain number of arithmetic manipulations on an input number and provided the result.

The study measured productivity. Programmers from both groups got to a debugged working end product in about the same amount of time. So, perhaps background music doesn't make a difference?

Not so fast. The arithmetic manipulations, unbeknownst to the programmers, always provided an end result the same as the input, making any actual calculation unnecessary. None of the programmers with music caught on to this, while a significant fraction of those with silence did.

The study theorized that producing working code was a type of task - perhaps what we would now call "left brained" - that didn't interact with the music. Realizing that the calculations could be simplified, however, was theorized to occupy the "creative" part of the brain - a part of the brain that was otherwise occupied with observing the music when the music was there. Perhaps a better breakdown would be "analytical" and "observational".

It's interesting to note that pair programmers often report the same kind of breakdown in responsibilities between detailed coding and higher level thinking when pairing.

Jeff Langr:

It probably is: occasional comments on the code and interactions should bother you no more than other cube talk.

I'm not Jason, but I would agree. However, I think that having normal cube talk in the background may have the same effect as background music. It's not as good as actual silence.

I used to work with background music, but one evening I happened to work without it, and noticed that I was about twice as productive. I can work in a moderately noisy environment and be as productive as others there, but it's not as good as silence. (The week between Christmas and New Years was really good, because it was so quiet.)

ps -- cubes suck. Unfortunately they are the permanent result of young bushy tailed managers sucked into the latest Great Thing at one point in office history. ;-)

Including those that have since been promoted to CEO!

An exception: my understanding is that both Apple and Microsoft give their programmers offices with doors that close.
[ February 01, 2005: Message edited by: Warren Dew ]
 
Sheriff
Posts: 9109
12
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
For a period of time I was pair programming in a "war room" although that room contained developers working on several projects.

Now I am in a cube and some of the developers come over to my neighbor to discuss football, etc.

For me, the second case lessens my productivity much more than the first. When everyone was pairing, people were much more considerate of the volume of their conversations.
 
Jeanne Boyarsky
author & internet detective
Posts: 41860
908
Eclipse IDE VI Editor Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Warren,
That's interesting evidence. Unfortunately few offices (or libraries for that matter) are completely silent.

Personally, I had noticed that I am more productive when people aren't around or on holiday weeks. However, I thought it was because people weren't asking me things and the phone wasn't ringing.
 
Ilja Preuss
author
Posts: 14112
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
There is another subtle point to consider: individual performance isn't what counts in the end, team performance is. And the latter might be more than just the sum of the former...
 
Jeff Langr
author
Posts: 799
5
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I'm reminded of other battles in shops. Lights vs. no lights, for example. Some cultures like to work in the relative dark and turn off the fluorescent lights. This can make it very difficult for some people, perhaps even emotionally. Others claim that fluorescent lights cause them similar distress, and they're unable to work as effectively as possible.

The best we can do is learn to show some respect and consideration for others. This doesn't mean, however, that we cater to everyone's whims. I happen to work best shirtless (not a pretty sight) and with obnoxious music playing. I've found that I need some noise level, otherwise I'm unable to concentrate. (It's probably a side-effect of my wife using a white noise device to sleep at night.) But my personal preferences aren't going to fly in most places.

I've gotten to the point where I just don't give a hoot. After doing this long enough, I've learned to adapt to wacky coding styles, ignorant management, fluorescent lights, unworkable processes, shirts, and silence or excessive noise. I've worked in a Coke room, an open room with 60 people (on 3+ projects), in a rickety shack of a building, in lots of horrid cube farms, in an office with a physically abusive coworker, and in an office with two heavy smokers (back when you could still smoke in the office). I still managed to always get the job done.

I note that my most successful projects were when I worked in a collaborative environment, i.e. not in isolated cubes or offices. The best efforts I've ever been on were with a bunch of developers circled around a group of monitors, pairing or no pairing and XP or no XP.

If something is particularly bothersome to me, I first find a way to change it. I've taken out fluorescent light bulbs, I've brought in Allen wrenches and dismantled cubes, I've put my headphones on, I've requested a different cube, I've talked to my coworkers and management. If I can't change it, I learn to cope. If I can't cope, I just leave. When the time comes that none of these is an option, it's time to move to my second career.

-j-
 
Jason Menard
Sheriff
Posts: 6450
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Originally posted by Jeff Langr:
I've gotten to the point where I just don't give a hoot. After doing this long enough, I've learned to adapt to wacky coding styles, ignorant management, fluorescent lights, unworkable processes, shirts, and silence or excessive noise. I've worked in a Coke room, an open room with 60 people (on 3+ projects), in a rickety shack of a building, in lots of horrid cube farms, in an office with a physically abusive coworker, and in an office with two heavy smokers (back when you could still smoke in the office). I still managed to always get the job done.



This would spin-off an interesting side-topic: Most interesting programming environment. I certainly don't envy you, particularly in the examples of the physically abusive coworker and the two heavy smokers. That certainly can't help productivity.

My most "interesting" programming environment... Banging out UNIX shell scripts on a mountain overlooking Sarajevo, in a compound surrounded by sandbags, barbed wire, and machine gun nests, in ~30 degree weather, working in a small trailer, with a 9mm Beretta strapped to my side. At least it was a "no-smoking" trailer.
 
Ilja Preuss
author
Posts: 14112
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Originally posted by Jason Menard:

My most "interesting" programming environment... Banging out UNIX shell scripts on a mountain overlooking Sarajevo, in a compound surrounded by sandbags, barbed wire, and machine gun nests, in ~30 degree weather, working in a small trailer, with a 9mm Beretta strapped to my side. At least it was a "no-smoking" trailer.



I guess this could only be topped by debugging FORTRAN programs on board of the ISS...
 
Ranch Hand
Posts: 5093
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Done QB and VBA programming in the loft of a former nuclear power station with airco units blaring away on all sides.
Radiation badges and hearing protectors required at all times, the vibration of the floor and the noise still drove me away after half an hour or so.
Was there performing radiation scattering experiments to verify a new method of determining lead/mercury contamination in nuclear waste samples (the software was to process and present the results).

And the most interesting work environment (no programming there) was 100 meters up on the exhaust stack of a waste incinerator, performing experiments to determine the amount of ash deposits inside the stack by radiation scattering by the ash particles.
No safety lines, only a bit of scaffolding bolted to the stack with a kneehigh fence to prevent us from falling to the ground below.
View was magnificent, so was the wind
[ February 04, 2005: Message edited by: Jeroen Wenting ]
 
Jason Menard
Sheriff
Posts: 6450
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Just remember... An armed IT shop is a polite IT shop.
 
Consider Paul's rocket mass heater.
reply
    Bookmark Topic Watch Topic
  • New Topic