Developer work environments

This Joel on Software article about developers’ work environments reminded me about a humorously titled but serious blog entry Top 10 Ways to Motivate Geeks from a couple of weeks ago. Both got me thinking about my current situation.

I work at a small biotech startup that was originally in Providence, RI but moved around the first of the year to an office park in Mansfield, MA. It’s closer but still a long commute from Boston, so work from home when practical. It’s not a software shop so I’m support staff (and the only developer at the company), and I go to the office when the scientists need me there or when I need to work with them directly on a feature. I do end up in the office way more than necessary though – it’s hard to estimate when personal interaction will be necessary – but I find most days I go to the office I don’t interact with anyone except socially.

Our management isn’t particularly experienced with small companies or startups, so their approach is more traditional, tending to take more of a big-company approach than a more agile, small-company one. And they certainly leased big-company-style office space, with individual offices for the managers and cubeland for the rest of us.

I’ve worked in a pretty wide range of environments. I did one 6-month stint at a financial services company in downtown Boston where even though I never saw customers, I was still required to wear a suit and tie to work every day. I’m still amazed that I did that – I don’t even wear suits to interviews – but hey, the money was very good. Ironically, I worked two floors above the rest of the team, most of whom were in very cramped quarters. So that ended up being a pretty weird dynamic.

I worked at a great web development company in western New York in the middle of the Dot-Com boom, and they did a good job fostering that fun-but-intense environment where we could walk around barefoot, bring dogs in to work, play foosball, etc. but of course we worked our butts off. The one significant problem with that environment was that they wanted to eliminate the barriers to communication, so we were all in one large room with nothing between the desks. The desks weren’t close – we had plenty of personal space – but with no walls it was pretty distracting.

One of the biggest problems was personal phone calls. We had several small conference rooms with a phone that were available for personal business but often people just made their calls from their desks. You don’t listen but you can’t not hear what’s being said, and I was often amazed at what people would talk about. So this experiment in XP/Agile/etc work space was overall a failure. While it was easy to wheel over to a colleague’s desk to discuss a problem, that was nearly always an extra distraction for people nearby.

My current environment is distracting in a much more traditional sense. My cube is in with the lab scientists’ cubes, and they can be a loud bunch. A few of them are sports fans, and any time you get two or more athletic supporters in a room they will tend to be gregarious. My typical defense is loud music in headphones, but that gets old pretty quickly.

I should note that this probably reads a bit more negatively than I mean it to. I enjoy my work and like my co-workers (and the work I’m doing is contributing nicely to my resume’s acronym count). I suppose that as a grownup and a professional I should be more proactive and air my concerns – the environment certainly supports that. But if I were, for example, to print out Joel’s article and stomp my feet and demand a private office, I wouldn’t have many options given our current space. And at the same time, I feel intrinsically pressured to buck up, quit whining, deal with it. Funny how psychology works.

p.s. I just noticed that there’s an update to the “Top 10 Ways to Motivate Geeks” post that references similar articles, in particular one titled “Top 10 Ways to De-Motivate Geeks“. As with the first article, the points are all great, but #3 and #4 (on communication) are particularly interesting.

2 Responses to “Developer work environments”

  1. Kyle Hart says:

    Our management isn’t particularly experienced with small companies or startups, so their approach is more traditional, tending to take more of a big-company approach than a more agile, small-company one.

    What should a small agile company do once they’ve decided on a floor plan (cubes/offices/etc.)? It apears from your post, that policies about noise level and interruptions would go a long way to addressing the issues you raise.

  2. Burt says:

    Joel’s article references a blog post that talks about Microsoft reconfiguring a workspace to meet the needs of the author’s team. The discussion in the comments is interesting; it runs the gamut from very supportive of the changes to very against. But this just points out the obvious, that there’s no one best work environment for everyone, not even for programmers. A company with an agile attitude certainly wouldn’t think in rigid terms like “once they’ve decided on a floor plan”, right?

    Noise policies are impractical in mixed work environments – in an extreme example, imagine pairing pure researchers with phone support and salespeople. It’s unrealistic to expect that people who blather into a phone all day should have to constrain themselves because of their neighbors. They shouldn’t be co-located in the first place.

Creative Commons License
This work is licensed under a Creative Commons Attribution 3.0 License.