views:

305

answers:

7

What are people's experiences with osmotic communication (as recommended by Alastair Cockburn as part of Crystal Clear) as opposed to giving developers individual offices with doors (as recommended by lots of people; for instance, Joel Spolsky. Joel comes back to this here )

Has anyone found the learning-by-osmosis approach to work well? Cockburn suggests a "cone of silence" to allow lead developers to get work done without distractions, but his idea of that being 6pm to 2am isn't always practical. I can see the advantage of osmotic learning for the people doing the learning, but on the other end of things it makes it difficult to get any work done on tough problems where you need concentration.

Do people doing this find that it's actually a win overall for the whole team, even though some people get less work done? Is anyone deliberately doing this, or is it just an accident of cubicle design when it happens?

+2  A: 

I like the idea of silence and own office since it's definitely true that developers need to be focused and if our concentration gets broken every 15 minutes we won't get much done.

On the other hand tho I believe that the best communication is face-to-face and I think there should be some time per week (say 2 hours) where developers can meet (optionally) and discuss what different problems (programming ones:)) they're having and possible solutions etc. We do that at our company and even though we have it scheduled every week we go maybe once every 2 weeks but the meetings are very productive always.

Svet
+1  A: 

I have worked both ways and greatly appreciate programming in groups. If you have good programmers that enjoy coding it's hard for them to get distracted in a room full of coders. I even requested not to have an office in a new environment we are moving into.

I think being near people that you may need information from boosts productivity and creates a collaborative, exciting environment.

Sara Chipps
+1  A: 

Four members of my team of six developers sit around the perimeter of a single open room (desks facing outward). (One recently relocated and now works remotely, and the sixth works in another open area down the hall amongst a related business group.) I have an adjacent office with a door (because I often need to deal with confidential business), but I spend a lot of time in the developer room. I have never had any complaints about this arrangement, and the team is very productive.

The room is very quiet most of the time, but whenever someone needs to ask a question or get a second opinion on a piece of code, a colleague is only a few feet away. This is a great time-saver, and I think there is also a lot of value in having the barrier to communication be relatively low - it encourages people to ask a question when that is efficient.

My personal opinion is that anyone who needs absolute silence to work effectively probably needs to improve their ability to concentrate - if I am in the middle of working on an interesting coding problem, I might not notice if someone walked up behind me and let off an air horn.

McKenzieG1
+3  A: 

(prompted by McKenzieG1's answer) My understanding is that it has been accepted that there are basically two types of people. There are those that think visually and there are those that think aurally.

(sadly I don't think that I can cite sources)

The visual thinkers will visualise problems in their head. Whereas the aural thinkers will basically talk themselves through problems.

I heard this in relation to the hiring of (human) calculators to work in different environments - the visual people were hired for work in noisy environments and aural thinkers were hired to work in environments with lots of visual activity.

Rotating all of your desks so that they are outward facing is going to be great if you exclusively hire visual thinkers. But any noise is going to impact the ability of an aural person to work effectively.

And that's only talking about random noise. If someone is having a conversation within your earshot it's worse.

In addition take a look at Kathy Sierra's post (and another) on the issue of multitasking and distractions. It's not merely a matter of training your conscious to focus - there are more fundamental areas of the brain that are going to be distracted anyway.

You don't want to stifle communication - if someone needs to talk to another person then there should be no impediments to that. But it should be done in a way that does not impact on other people.

Andrew Edgecombe
+2  A: 

My personal opinion is that anyone who needs absolute silence to work effectively probably needs to improve their ability to concentrate - if I am in the middle of working on an interesting coding problem, I might not notice if someone walked up behind me and let off an air horn.

The problem is not the interesting coding problems, it's the not-so-interesting ones.

Unfortunately not all tough problems are interesting and when you're up against a hard but quite dull problem it's easy for your mind to wander. Currently I share a room with one other person. This means that not only do I have to battle my own mind from causing distractions that will break flow, I also have to try and shut out any external distractions. I can win one of the battles but not both.

I say: Give me a private office any day of the (working) week.

Andreas Magnusson
+1  A: 

I am with Tom DeMarco on this issue: programmers needs a room with a door that can be closed, and a phone that can be taken off the hook.

Coding is an activity for which flow state is a great help, if not a necessity. This means there has to be some means of shutting out interruptions. From people outside the development team, but also from other developers. If the barrier to communication is too low (or nonexistent), developers can get into the habit of asking for little things they could have looked up for themselves. Which in turn interrupts the flow of the person being asked.

Doors can be left open, and phones can be left on the hook. The default state for barriers to communication should be low, but it should be possible to raise them when you need a contiguous chunk of uninterrupted time.

Tobias Klüpfel
Straight out of Peopleware. But agreed. :)
Barett
A: 

On a "hands on" XP seminar we've experienced 20 people very sceptic about the scenario that all worked (in pairs) in a huge hotel room at the same time. Of course, noise level was way higher than the usual office situation due to questions and the need for the participants to get used to another.

When one pairing session was running out of time, we asked (in loud voices) the participants if they were finished or had more questions. All but one pair recognized this.

We addressed these two people separately in a now quiet room, everybody else watching. They were so involved pairprogramming, that they didn't hear anything around them.

Addressing them multiple times with their names didn't help, until one trainer walked up to them and waved his hand in front of their screen - when they finally came out of their trance. This was an impressive demonstration on how one can wipe out their surroundings.

I won't say that this works for everyone, but keep in mind that the style of work (e.g. solo vs. pairing) can make a big difference. When I'm pairing I personally can cope with a lot more distractions than when working solo.

This doesn't say much about picking up osmotic communication though. I have to say that I personally prefer open environments with the occasional opportunity to get to a private space - depending on daily needs.

Olaf