Offices are Overrated (Especially Open Offices)
Developers are expensive. Hardware is cheap.
We’ve heard that maxim time and time again. We use it to justify automating every possible task in the developer work flow. We use it when selecting languages that are more productive but less efficient. Its true, especially when servers are pennies or dollars an hour, whereas a junior software engineer is making $25+ hour ($65,000 / 2040, give or take).
So the goal of any business, especially a lean business, should be maximizing the work we get from our developers per hour. No, that does not mean “work more hours”; there is a finite limit for productivity and burnout becomes a very real risk.
Wo what can we do? “Let’s create an open office to maximize communication and collaboration!” screams a manager from somewhere. I’ve worked in those open offices and I promise you one thing: Not Again.
What ends up happening is people put on headphones to block out distractions or “open communication” that does not involve them. Then, they get in a flow and are on the cusp of some great code when tap tap tap: “Hey man, can you help me with this / want to get some coffee / want to play ping pong / etc?” The flow is lost, the engineer will likely say yes, and productivity goes back down. The engineer gets back, starts working, then ding “Reminder: Morning Standup”. Fifteen minutes later, back to the desk and working then “Hey, did you see my PR?” Ad nauseum.
I’m not saying there is a fits-all solution; some people undoubtedly thrive off of such relationships and working structures. In fact, I would even argue that sometimes they are needed. However, 75% of the time, I want to be left alone to knock out some code. That is what I am paid to do. Don’t get me wrong, I love mentoring and helping, I love working with others and forming relationships (I am a Chaplain in the Army, after all), but at the end of the day, the business pays me to deliver value.
Working from home has been awesome. I wake up, don’t waste anytime in the awful commute from Salem, NH to Boston, MA, and am able to dive right in. I know when my interruptions will occur for the most part (Google Hangout scrum, scheduled calls, etc). At five or six (depending on flow) I can stop and return to my family, which is one of the main reasons I work anyway. In that time, I accomplish more than I did in an entire week in an “open office”.
What I think is a good mix is one or two days in the office, the rest remote. Business can save money on utilities, space, etc. We have the technology to enable remote work. Slack, Google Hangouts, Skype… our peers are a click away. When they are in flow, they can ignore them. When not, they can respond. They can maximize their productivity and know that, on days in the office, their work throughput will be less. That’s ok, because the days at home or remote will be more productive. Which is ok.
Because at the end of the day, developers are expensive.