Saturday, October 29, 2005

Private offices: what do they really compensate for?

Recently someone on the team forwarded a link to Joel's mini-essay Multitasking in the Workplace, a small rant against the problem of coworker interruptions with private offices as the solution. In case you haven't read many Joel articles yet, he really likes private offices.

I think Joel's focus on private offices is a result of his belief that superstar programmers create the best software, described in Hitting the High Notes (and other places). Superstars are most productive if they don't have to work directly with each other. In the High Notes article, Joel says, "A single good programmer working on a single task has no coordination or communication overhead. Five programmers working on the same task must coordinate and communicate." As if communication is an evil that should be avoided if at all possible, especially where it involves his superstar programmers (perhaps he's on to something).

Notice the diagram at the top of the article:

Best Working ConditionsBest ProgrammersBest SoftwareProfit!

Where is Best Team in this picture?

A number of people have commented on this, filling in the team side of the equation:

Scott Berkun discusses the relationship between teams and stars

Eric Sink replies with a choir analogy

The Five Dysfunctions of a Team says the fifth dysfunction, inattention to results, happens when team members put their individual needs (ego, career development, recognition) above the success of the team. This is a big risk when you've got a bunch of superstars working in isolated silos.

I think the most telling statement in Multitasking in the Workplace is "She does mention that open-spacers do frequently decide to 'interrupt themselves' to participate in another conversation that they overheard, something which is probably net beneficial for the team's productivity but which drives me crazy." This implies that he's not going to encourage behavior that boosts the net productivity of the group! How can individual productivity possibly matter more than the net productivity of the group? I don't get it.

This isn't the first time Joel has heard stuff like this. Several years ago he asked Tom DeMarco what he thought of pair programming contrasted with private offices. Tom replied that "groups of people who work in the same style on the same kinds of tasks will not distract each other." It's worth noting that Tom is the author of the excellent Peopleware, the book Joel often refers to when speaking of private offices.

I do agree that removing distractions is important for productivity. I'm just not sure I agree with Joel that those distractions are always necessarily my coworkers.

From observing our team's development cycles, I've found it most helpful to be "distracted" by on-topic conversations when we're in our analysis and design phases, and least helpful when we're in the coding phase. Joel's right… when your head is full of all the variables necessary for writing code, it's very expensive to re-load after an interruption. I guess my "it depends" answer means I also disagree with Joel that a developer is always working on code. Of course Joel is 45% more likely to say programmer than developer...

I think it's up to each person to determine when they need to be in "flow" mode and put on headphones, hang a do-not-disturb sign, or disappear for a while when they need uninterrupted focus. Telecommuting can be awesome for getting lots done when you know exactly what needs to be done and can do it all on your own.

I must admit that I have been strongly on both sides of the fence on this issue at various points in the past, so I reserve the right to change my mind depending on the circumstances. In the here and now, the benefits of sacrificing my personal productivity for the productivity of the team are quite clear.

That's enough for now… I really do enjoy Joel's articles, even the ones I disagree with.

No comments: