The most productive team I worked with, and one of the most senior teams within an organization of several tens of thousands with a very significant development staff, was approximately 50% remote, depending upon how one measured and when one included some remote developers and operations people (also very senior) who were intermittently present depending upon project needs. (Some of the operations people were often on site but located far enough away that much communication was as if they were remote.)
And its trend was increasingly remote. Members sought this once and as they could, because it increased their effectiveness so much. (And lowered costs and total time demands -- e.g. commuting -- in positions that were already delivering far more than 40 hours / week.)
This team outperformed the other teams by a fair margin. And some of the truly remote members were among the most efficient and effective I've seen.
Throughout my career, I've seen very little evidence that physical presence -- colocation -- makes a significant positive contribution in software development. I am biased, I will say, in that I both prefer and need a quiet work environment. I feel validated or "justified" in this need, for me at least, in that I've consistently been one of the most effective employees in the organizations within which I've worked. (And I've had numerous people in all sorts of roles tell me this.)
I don't mind colocation, if quiet offices are provided. However, cubes or worse are largely de rigueur, these days, and even in such open space environments, I've witnessed not just the destructive nature of noise and interruptions, but depending upon the staff member enormous amounts of time wasted on "socializing" of various (very off-topic and sometimes inane) sorts. Doubly bad in that context, in that it invariably distracts surrounding employees who are trying to work. And it builds a conflict between not betraying teammates and one's own need to have them quiet down or take it elsewhere.
As for who tends to "thrive" in such environments? Those who "multi-task", juggling lots of things shallowly to the point of making many mistakes and oversights. Those who are constantly "interacting", meaning most often that they are interrupting someone else to solicit knowledge that they should have or be able to look up themselves. Those who use the concept of "team" to disperse and deflect individual responsibility.
Granted, I and the people I've described may be a minority. But in my observation and perhaps in staid corporate environments, those who benefit from colocation tend to be those who need to be herded and hand-held. Those who want and are really able to get shit down, don't mind face to face but are greatly frustrated with pointless and distracting face to face.
(As an example of this latter, we got many of our meetings down to 15 to 30 minutes, when they were necessary. People knew and held themselves responsible for knowing what was up, and the meeting could quickly focus on problem solving and setting a specific course.)
Granted, I and the people I've described may be a minority. But in my observation and perhaps in staid corporate environments, those who benefit from colocation tend to be those who need to be herded and hand-held. Those who want and are really able to get shit down, don't mind face to face but are greatly frustrated with pointless and distracting face to face.
I too don't know what the numbers are like. I've seen great teams do great things remotely. I've seen great teams do great things co-located. Some of the very best teams I've seen have been co-located. I've also seen some distributed teams fail miserably. I've seen teams co-locate, try remote working, found it didn't work, and co-locate again. And so on.
I wish I knew the relative spread of how these things work out for people in different contexts and on different projects. I just find it suspicious that remote work is often presented as all upside since:
a) In my experience things are rarely all upside - I always start looking for the downside ;-)
b) For whatever reasons a chunk of the dev world tends to be a tad asocial. I know I can be like that. So when something comes up that supports that tendency I wonder if I may be overlooking problems because I would like something to be true.
I think that some in the development world may be less indiscriminately social.
I'm plenty social. And I'm not a snob -- I can talk with most anyone, about genuine interests (interests on either party's part, not just my own). Or just sit around drawing spirals in the pancake syrup, for a while.
I don't particularly enjoy discussing the latest Hollywood movies and actors ad nauseum, whose existence and which conversation seems to serve significantly to reinforce established, simplistic stereotypes. Especially when the conversation ranges in exactly that direction.
I don't enjoy conversations that "get personal", looking for ways to pick apart those not present (behind their back). Or that look for ways to pick apart those present, in active, emotionally manipulative pursuit of a pecking order.
On the team I described, we socialized, although people were on average fairly reserved. A good part of that socialization reflected people actually paying attention to and remembering what each other were interested in and doing, and what was going on in their lives.
Again, this is just an opinion, but I think some of the "anti-social" attributed to "nerds" and "geeks" is rather an active dis-interest in much of the lowest common denominator of what we consider "social".
(Some, not all. I've met plenty of intellectual assholes, too.)
Another, personal example: I rather enjoy playing sports. I couldn't care less about watching paid professionals doing it. (This does vary somewhat by sport and event. Also, if anything, I tend to find amateur games more interesting; they bear a closer relationship to my life than the over-produced, over-medicated thing that professional sports has become. Upon reflection, maybe this is a somewhat arrogant or avoidant attitude on my part; I received a lot of abuse as a kid for not being "sports-wise" -- something my father wasn't and never passed on to me.)
I've spend too much time and energy on self-doubt, as it is. A lot of places and people have told me that I'm the one who needs to change. They love my work, and how do I do that? But, you know, "We all work in cubes."
If you are outperforming your peers (and, not infrequently, management) and otherwise succeeding, then, well, who has the problem?
The following may take the interpretation a bit far, but: The bully will always insist that it's "your problem".
And its trend was increasingly remote. Members sought this once and as they could, because it increased their effectiveness so much. (And lowered costs and total time demands -- e.g. commuting -- in positions that were already delivering far more than 40 hours / week.)
This team outperformed the other teams by a fair margin. And some of the truly remote members were among the most efficient and effective I've seen.
Throughout my career, I've seen very little evidence that physical presence -- colocation -- makes a significant positive contribution in software development. I am biased, I will say, in that I both prefer and need a quiet work environment. I feel validated or "justified" in this need, for me at least, in that I've consistently been one of the most effective employees in the organizations within which I've worked. (And I've had numerous people in all sorts of roles tell me this.)
I don't mind colocation, if quiet offices are provided. However, cubes or worse are largely de rigueur, these days, and even in such open space environments, I've witnessed not just the destructive nature of noise and interruptions, but depending upon the staff member enormous amounts of time wasted on "socializing" of various (very off-topic and sometimes inane) sorts. Doubly bad in that context, in that it invariably distracts surrounding employees who are trying to work. And it builds a conflict between not betraying teammates and one's own need to have them quiet down or take it elsewhere.
As for who tends to "thrive" in such environments? Those who "multi-task", juggling lots of things shallowly to the point of making many mistakes and oversights. Those who are constantly "interacting", meaning most often that they are interrupting someone else to solicit knowledge that they should have or be able to look up themselves. Those who use the concept of "team" to disperse and deflect individual responsibility.
Granted, I and the people I've described may be a minority. But in my observation and perhaps in staid corporate environments, those who benefit from colocation tend to be those who need to be herded and hand-held. Those who want and are really able to get shit down, don't mind face to face but are greatly frustrated with pointless and distracting face to face.
(As an example of this latter, we got many of our meetings down to 15 to 30 minutes, when they were necessary. People knew and held themselves responsible for knowing what was up, and the meeting could quickly focus on problem solving and setting a specific course.)