Down with the tyranny of geography. Down with commuting, the daily activity most injurious to human happiness. Down with allegedly collaborative open floor plans built such that high-level executives  are exempt from this collaborative environment. Up with more time, greater flexibility, and, believe it or not, higher productivity.
Im talking about remote work, of course, a subject that provokes surprising vituperation whenever I write about it. (Armchair-psychologist theory: people get very angry at notions which imply they have spent much of their lives needlessly making themselves very unhappy.) Its also a subject I know more than a little something about: we at HappyFunCorp have been building software with all-remote and/or partly-remote teams for seven years now. Ive seen what works and what doesnt.
What doesnt work includes confusing physical presence with checked-in code, or in-person meetings with productive communications, or valuing the starry-eyed magic of serendipitous collisions above all else and/or common sense. Dont get me wrong, Im not saying remote work is a panacea. It too has its failure modes. But the assumption that its failure modes are worse than those of office work, just because office work is the historical default, is sheer intellectual laziness.
We at HFC do have a headquarters in Brooklyn, where a plurality of us labor, but Ive worked successfully with teams scattered across New Delhi, Milan, New York, Berlin, Campina Grande, and San Francisco. In this era of Slack, Skype, and Github, a team of a dozen capable people across a dozen time zones can run like a well-oiled machine.
Quite apart from the time and rent saved, theres growing evidence that remote teams can be more productive than in-person ones. Consider: We found massive, massive improvement in performance a 13% improvement in performance from people working at home. Consider companies like Automattic, Gitlab, InVision, and Zapier, all of which thrive as fully remote companies.
And if still seems bizarre, weird, or experimental, consider this:
Surveys done by Gallup indicate that in 2016, the proportion of Americans who did some or all of their work from home was 43%, up from 39% in 2012. Over the same period, the proportion who only work remotely went to 20% from 15%
The biggest transition from office to remote work isnt the geography; thats incidental. The biggest transition is the mode of communication, which goes from default-synchronous (walk over to your colleagues desk) to default-asynchronous (PM them on Slack.) I certainly concede that certain forms of work, and certain people, benefit more from synchronous communications; but I put it to you that most kinds of software development is not among them1, and that an ever-increasing fraction of the worlds work can be described as most kinds of software development.
However. Having said all that. Remote work is not without its flaws and challenges. Some people prefer a tight-knit work community to the broader but more loose-knit ones that remote work fosters, which is fair enough. Serendipitous collisions can and do happen among asynchronous communicators, too posts on shared Slack channels can snowball into full-scale internal projects with surprising ease but I think its fair to say that theyre more likely to occur in-person. And even the largest of all-remote companies have populations measured in the hundreds, not the thousands; once you hit a certain size you need a physical footprint.
The biggest problem of all, though, is that its much harder for (many) junior people to learn from asynchronous rather than synchronous communication. There are exceptions, the kinds of people who learn better from textbooks than from classes; but as a general rule, in my experience, remote work is for people who are already fairly capable and experienced. Thats fine for HFC and companies like us, we have the luxury of limiting ourselves to senior developers and/or the exceptions among juniors, but that solution doesnt scale.
Looking at the increasing numbers, though, it seems awfully apparent that remote work is the future for a substantial fraction of the modern work force. I still find it bizarre that the notion apparently makes so many people so angry.
1Pair programming has its place in this world, but I spent six months working at a 100% pair-programming shop once, and it was one of the least pleasant experiences of my professional career. I recognize and celebrate that for many people it is excellent! For most of the rest of us, however, it is the polar opposite.