There are extensively documented
productivity gains provided by
giving
knowledge workers space, quiet, and
privacy. The classic
software management book
PeopleWare documents these
productivity benefits extensively.
Here's the trouble. We all know that knowledge workers work best
by getting into "flow", also known as being "in the zone", where they
are fully concentrated on their work and fully tuned out of their
environment. They lose track of time and produce great stuff
through absolute concentration. This is when they get all of their
productive work done. Writers, programmers, scientists, and even
basketball players will tell you about being in the zone.
The trouble is, getting into "the zone" is not easy. When you try to
measure it, it looks like it takes an average of 15 minutes to start
working at maximum productivity. Sometimes, if you're tired or have
already done a lot of creative work that day, you just can't get into
the zone and you spend the rest of your work day fiddling around,
reading the web, playing Tetris.
The other trouble is that it's so easy to get knocked out of the zone.
Noise, phone calls, going out for lunch, having to drive 5 minutes to
Starbucks for coffee, and interruptions by coworkers -- especially
interruptions by coworkers -- all knock you out of the zone. If a
coworker asks you a question, causing a 1 minute interruption, but
this knocks you out of the zone badly enough that it takes you half
an hour to get productive again, your overall productivity is in
serious trouble. If you're in a noisy bullpen environment like the type
that caffinated dotcoms love to create, with marketing guys
screaming on the phone next to programmers, your productivity will
plunge as knowledge workers get interrupted time after time and
never get into the zone.
With programmers, it's especially hard. Productivity depends on
being able to juggle a lot of little details in short term memory all at
once. Any kind of interruption can cause these details to come
crashing down. When you resume work, you can't remember any of
the details (like local variable names you were using, or where you
were up to in implementing that search algorithm) and you have to
keep looking these things up, which slows you down a lot until you
get back up to speed.
Here's the simple algebra. Let's say (as the evidence seems to
suggest) that if we interrupt a programmer, even for a minute, we're
really blowing away 15 minutes of productivity. For this example,
lets put two programmers, Jeff and Mutt, in open cubicles next to
each other in a standard Dilbert veal-fattening farm. Mutt can't
remember the name of the Unicode version of the strcpy function.
He could look it up, which takes 30 seconds, or he could ask Jeff,
which takes 15 seconds. Since he's sitting right next to Jeff, he asks
Jeff. Jeff gets distracted and loses 15 minutes of productivity (to
save Mutt 15 seconds).
Now let's move them into separate offices with walls and doors.
Now when Mutt can't remember the name of that function, he could
look it up, which still takes 30 seconds, or he could ask Jeff, which
now takes 45 seconds and involves standing up (not an easy task
given the average physical fitness of programmers!). So he looks it
up. So now Mutt loses 30 seconds of productivity, but we save 15
minutes for Jeff. Ahhh!
Joel on Software (joel.editthispage.com)