There is an article floating around Hacker News today that makes the argument that open office space sucks. While I see the author’s point, it really depends on the type of engineer you are, and how easily you distract yourself.
The astute reader will notice that, yes, I work solo now from home on Urban Apps projects, but I didn’t always do this. I have experience in both types of offices and am able to form an opinionated preference.
Open @ GoodGuide
I am the type of engineer who benefits greatly from bouncing ideas off other engineers, talking out problems, or ever pair programming. I have found that working together on a shared problem is far more beneficial than hammering it out solo. Perhaps it is the type of work I do, but it seems that other iOS and Web developers feel the same way.
Perhaps hammering out firewall scripts and parsing apache logs works best when solo, but when working with others on a shared feature or functionality it is a great benefit to have them within earshot. Even better if they can view your screen with a simple head turn.
At GoodGuide, we had a giant open plan with all software Engineers — back-end, front-end and mobile — each working in the middle of a shared space. Pair programming was used frequently, and the burden of solving tough problems was reduced by recruiting help from others.
Sure there were distractions as we all know engineers need to play fooz, shuffle board and other shenanigans, but the benefits far outweighed the costs. As an engineering team we solved things together and goofed off together, building camaraderie and solidifying a loyal team dedicated to creating the best product. If an engineer needed solitude at any time, s/he would simply pop in a pair of headphones and nobody would bother them.
Closed @ Sun Microsystems
I worked as a QA Engineer on a dedicated storage box called HoneyComb. At the SF Sun office each engineer had their own cubicle with 6’ walls, of which I was assigned one nowhere the rest of my QA team. Granted, I was an intern at the time, but the QA Engineer responsible for directing me was several cubicles away. My job mainly consisted of writing PERL (I just threw up in my mouth a little after writing that) scripts to automated tests to run on the HoneyComb software. Nothing very challenging, in fact it was a little mundane, but it required a knowledge of the HoneyComb inner workings.
To get said knowledge, I had to converse frequently with my engineer and the feature developers. This meant getting up out of my cubicle, walking down the hall and bothering them to get a simple question answered. I used IM when I could, but typing took too long for a complicated answer. I wasted a bunch of time because I could not simply ask across the table.
Perhaps the most important reason working isolated was bad for me (and I suspect many other engineers) is that I found myself goofing off more when solo. Without the risk of anybody glancing at my screen I would get distracted by Facebook, personal projects and other online activities while waiting for code to compile or test to run. Maybe this says something about me in specific, or something broader about the age we live in, but I suspect it is the latter.
So, which is better?
If you are the kind of person who works better on your own, then obviously you should find a job where there is not open-style seating. If you work better with others then do the opposite. I can only speak for me (not an idiot as the article implies) and these musings are simply anecdotal, but I think the real idiot here is the person who chooses a job where the work environment clashes with their personal preferences. There are pros and cons in both environments so make the best choice to suit your work style, just don’t call the other one stupid because you chose poorly.
Lastly, I run a small software company called Urban Apps. It pays the bills so I can take the time to write helpful posts like this one. If you found this posting helpful at all, I would really appreciate it if you would check out my Apps on the iTunes App Store.