My gig at magazines.com began as a member of a two person team. Luck would have it that we were very compatible office mates as we shared similar interests, hours and working habits. Even our music taste was similar. We moved from a shared cube to a conference room table to an eventual custom 3 man office. When we moved from that office space to our current digs a special room (dubbed the ‘Cave’) was allocated to harbor developers. Cubes were inserted, but they were more elaborately connected desks than traditonal cubicles.
Time has passed. That early two person team has double to four and we are looking to hire another (send resumes to cwatson ta magazines dot com). A quick discussion between two programmers or a few questions from a coworker can easily knock an innocent bystander out of the zone.
I’ve been asked in recent planning what I think we should do about this. I’ve also just completed my first year as a manager, and I’ve got lots of stuff I did wrong. Here’s my laundry list:
Private Offices
Having a privacy and insulation from chit-chat and babble is a great way to stay in the zone and protect your flow.
Common Area
A response to the idea that having knowledge workers in a common area. This is a good idea, in theory, but every gain is countered with interruption. So rather than putting your programmers offices in an open room, give them an open room to meet in. Put some desks, power, comfy chairs, network jacks, caffeine and nerf guns into a room and let them meet there. Coordinate your meetings with…
Department IRC / IM
I idle in IRC and chat with other developers on projects we use. This lets me get help, provide help and socialize. Having your developers communicate this way gives you some of the benefits of the ‘community’ space but with the ability to minimize the window and get to work.
Fast Laptops, Lots of RAM, Big Monitors
Powerbooks or Thinkpads, chock full of RAM and a gigantic monitor to plug it in to. Mobility allows the programmers to bring their laptops together, work from home or take them to conferences. When a computer is the only tool used to do a time sensitive job, it makes no sense for it swap to disk.
Solid Network
Get a good firewall and spring for the most bandwidth that makes sense for your requirements. Waiting for a transfer from your colo to the office is murder when you are trying to get things done. So is fighting with arcane TCP/IP problems due to old firewalls.
Lots of Storage and Processors
Processors are fast and storage is abundant. Spring for the full terabyte and the quad-core. It’s worth it to avoid that full disk or that CPU bound process from ruining your day.
That’s my list for now. I’ll update after I get done with some more mind-numbing data conversion.