How Does Environment Affect Developer Productivity?

Increasing productivity is probably the thing you worry about the most, as a product manager. You have pressures from above, in the form of time and budget constraints, and, if you’re a youthful, optimistic startup, the ever-looming threat of everything just falling apart. Fun.

There’s a lot of wisdom and a lot of conflicting Gospel Truth out there about how to make your developers the most productive. And it’s not easy to sort through when you only have one go at this. Do you ascribe to the Google philosophy that everyone is striving to emulate? The wide open football fields of office space and chairs made out of rowboats and plants and free food and M&Ms and massage tables?

Google Office

Or do you agree with Joel Spolsky of Joel on Software (and his favorite book Peopleware), in the belief that the best environment for programmers is a closed office and peace and quiet?

The idea behind the Google format is that open space leads to open communication, and a freer, more organic flow of ideas and creativity. “We believe that great, creative things are more likely to happen with the right company culture–and that doesn’t just mean lava lamps and rubber balls. There is an emphasis on team achievements and pride in individual accomplishments that contribute to our overall success,” says Google’s company page.

But Joel Spolsky refers to this open-floor idea as “folk wisdom,” saying, “There’s a strong culture in Silicon Valley that requires you to jam a lot of programmers into a big open space, despite a preponderance of evidence that private offices are far more productive.” He advocates for peace and quiet and closed doors for his developers, and ascribes the success of his company, Fog Creek Software, to this workplace philosophy.

The Google formula goes back to Mel Conway’s seminal 1967 article “How Do Committees Invent”, in which he presented what later came to be known as Conway’s Law:

“Any organization that designs a system will produce a design whose structure is a copy of the organization’s communication structure.”

Google’s aim is a suite of products that are organic and seamlessly integrated with your daily life, so they’ve created an organic workplace that’s intimately integrated with the daily lives of their employees. Find an organization structure that makes you feel good, and you will produce a product, a piece of software, that makes you feel good.

That’s a philosophy that makes a lot of sense psychologically, and Google obviously has done well with it, so no wonder everyone is trying to copy that. But do the numbers back it up? Spolsky’s blog continuously affirms that they do not (http://www.joelonsoftware.com/items/2005/10/16.html).

I think that, like most things, this requires balance. Conway is probably right, in that better communication leads to better forward progress towards a mutual goal. Google is right in that an open, even-playing-field workplace without boundaries leads to an increased sense of mutual ownership over the project and the company as a whole. When you feel ownership over something, you want to make that thing great. Developers are creators, after all.

Spolsky is also right, because, let’s face it: if your work is building software, you can’t possibly be productive if you’re listening to someone chat about the deep philosophical implications of open-source software while munching on free M&M’s. Yes, an appreciation for the greater impact of your work is important. But so is doing your work.

Your job as a manager is to pay attention to everyone, to get inside their heads, understand how they work best, and facilitate that environment springing up in a way that seems organic. You can’t be too overbearing and mar the sense of control that your developers crave. You can’t be too laissez faire and risk people getting off-task.

So, lighten up, read some books on psychology, talk to people about what they want, observe people’s behavior to figure out what they really need to be productive, and try things out until you find that sweet spot that works for your team.