I often think of how crazy offices are. I’m talking about the idea of offices, not the environment in them (although that can be just as crazy).

An office takes up valuable real estate, but is empty half of the time. Likewise, the workers’ homes are empty for 8 hours a day. Everyone wastes time commuting. Workers burn gas, wear-out their cars, and generally subject themselves to soul-sucking amounts of stress each day, just to carry out their jobs. In what world could this system possibly make sense?

Well, the whole point of an office is to get work done. Companies like to make money, and they wouldn’t spend money on offices if it didn’t make sense… right?

I must digress a little to address this point. Many organizations make incredibly bad decisions. Individuals in organizations often have poor incentives. Most importantly, people get fired for screwing up. This causes organizations to be overly risk-averse. “Nobody ever got fired for buying IBM equipment” is the stereotype of this behavior. Since workers are incentivized to not make mistakes, they often avoid risks and copy the decisions of people in similar situations. Everyone else is doing X? We should do X. This is usually a reasonable heuristic. If everyone else jumps off a bridge, you probably should too.

Most of the time, these decisions aren’t even explicit. Of course you’re going to have an office. How else would people work together? Companies have had offices for centuries. When would it ever make sense to change that?

It’s often wise to re-evaluate these implicit decisions, because sometimes they no longer make sense. Offices are a good idea for many jobs today, but there is one specific case where I think they’re no longer beneficial: software companies.

What do programmers do all day? They read code. They write code. They read docs. They (hopefully) write docs. They communicate with coworkers through IRC, e-mail, instant messenger, phone calls (ugh), group meetings, and face-to-face interactions.

In short, programmers are either writing code or communicating with each other. At no point are they shaping matter. Communication across the globe can be practically instantaneous, so there’s no fundamental reason why software has to be written in a single location. Microphones and cameras are cheap (and integrated into most computers), so any disadvantage of remote working is a software problem.

Offices hinder software companies in many ways. They limit companies to nearby talent. They force employees to live in areas they would otherwise not want to live. Different office plans can cause problems. Foreigners have to get visas. An open office plan creates noise and distraction. Giving everyone private rooms is expensive. An in-between solution can breed jealousy and resentment.

With the right software, remote working can do more than reach parity with offices. It can strictly dominate them. This is part of what I’m trying to do with Floobits. But even if Floobits fails, something like this will come along eventually. Software will get better, networks will get faster, and social inertia will falter. There are simply too many good reasons to ditch offices.