I would never willingly subject a group of knowledge workers to that environment. When we grow Fogbeam to the point that we have employees and actual office space, my intention is to ensure that everybody has a private office, with a door that closes. Or, at least, that everybody is offered such a thing. If some people want to work in a different configuration, I wouldn't want to force them into an office when they don't want it.
My dream configuration has always been "a private office for every individual" and then complemented by several large open area with plenty of couches, chairs, tables, and whiteboards on wheels (and good wi-fi, of course) so that teams, small groups, and individuals can create ad-hoc, temporary configurations that suit them when they need to be co-located, but yet everybody has an office of their own they can retreat to when they need intense focus and privacy.
Worked in an open plan office before, wouldn't again, not for any sort of reward. Went home every night feeling like I'd been run over by a bus. Go home go to sleep. Not my idea of a good time. There were times when I'd catch myself starring off into space.
Working from home has been much better for me. If someone interrupts, then they have to put a bit of effort in, so they're less likely to do it just because they're too lazy to find an answer themselves or something like that. And the absence of noise and the constant pressure of being available to people all the time has dramatically increased my quality of life.
If you are doing something important that needs you to be focused on on particular a thing for long hours,without any interruption, frequent interruptions are disastrous.
There are also more ways to look at it.
If you are doing too many small time tasks that don't demand any serious focus. Its likely you have taken the wrong direction with regards to your career.
Great way of putting that. Can I borrow this? :)
If my coworkers aren't able to communicate quickly, and efficiently with myself and the other team members then the project will lose agility.
Often we will have tasks that require not being disturbed and in the stand up meetings we flag this.
If you need immediate communication, there are other far less distracting methods, such as IM or email, that one can safely ignore until they have managed to lessen their memory load until they've reached a safe point to stop. If you're constantly interrupting your fellow developer while they're in the middle of a high-memory task you are deliberately DESTROYING any "agility" of your project by wasting their time rebuilding their mental state before you interrupted them.
* responding to change over following a plan * individuals and interactions over processes and tools * working software over comprehensive documentation * face-to-face conversation * co-location and pair programming
And also...
"Agile methods emphasize face-to-face communication over written documents when the team is all in the same location. Most agile teams work in a single open office (called a bullpen), which facilitates such communication. Team size is typically small (5-9 people) to simplify team communication and team collaboration."
I could go on. Almost everything in agile is about flexibility and that's exactly what we need in our team and exactly what being able to sit close together without cube walls enables.
Agile certainly is not about single lines of communication, it's almos the complete oposite of that. Agile doesn't have 'appropriate times' since unknowns must be accommodated as and when. Being agile is about iteration, firing and then aiming, talking to each other, collaborating, and getting it done.
And as I said before, if individuals need uninterrupted time to get their work done this of course is accommodated. We're not school children, we know how to behave.
IM and email are all ok communication tools, but they are inefficient compared to a quick conversation - especially if you need to look at a visual front end bug on your colleague's screen in order to understand what the problem is.
I would also argue that if your project is being that reactive that it should be considered an anti-pattern, and that you should examine ways to make things less chaotic (erm, I mean, "agile").
As for 'anti-pattern' I'd say that describes our set up rather well. And yes, changes need to be made to make the work more predictable but until someone cracks that nut the boots on the ground definitely benefit from sitting together and being able to turn to talk.
People initiate communications for social reasons, or if they cannot proceed on a task without additional information. These "choke points" don't line up, from person to person. When you're at a choke point you have a decision to make -- defer work and interrupt your own flow, or interrupt the flow of someone else so you can keep your own rolling.
Unless problems are pedestrian or communication times are aligned, it's zero-sum. And that's presuming that the initiator has kept his own flow going (at the expense of someone else's).
You can sometimes (but not always) maintain a queue of tasks and switch to another, instead of interrupting someone else.
But the best thing to do is to get into flow prepared. Figure out beforehand what you don't know, and get it straight. Don't just dive in. Spend a few minutes sorting out what you're missing, line that up first, then head into flow.