I saw a tweet the other week about remote teams having lower performance than colocated teams:
It's not possible to not take a significant performance hit if you're not collocated. Remote if you must, but don't imagine that it's not costing both money and time to do that.
— Allen Holub (@allenholub) January 31, 2018
I thought this spectrum view of “performance” was curious and wanted to explore it more. I have not worked in a fully remote team, so I can’t provide my own anecdotal opinion, but I do have an analogue I feel quite comfortable with: “build yourself” versus “off the shelf.”
I’ve been at both ends of the spectrum and observed some common behaviors. Build-yourself engineering teams are more likely to carefully consider what they’re building, and to develop a stronger generic technical expertise. Off-the-shelf teams are more likely to ship quickly and experiment, and focus more on the product.†
This is to say that, along one measure, build-yourself teams are “lower performance” than off-the-shelf teams. But success in business is not about the speed of engineers. It is about a whole host of factors.
Off-the-shelf teams will ship more product features more quickly. If you are building an enterprise product where you absolutely need to check boxes for sales, this is probably important. If you are shipping a consumer product where you prioritize a clean experience, this is less important.
Build-yourself teams will have a steep learning curve for new hires. If you need to keep your team small and are focusing on long tenure, this is not a big deal. If you are planning to grow your team quickly, this can overwhelm the existing team.
My point here is that, I don’t consider off-the-shelf or build-yourself inherently worse.‡ I wouldn’t call either one “lower performance.” You will feel like you go faster with off-the-shelf, but you need to look at the whole picture.
I suspect the same is true in remote vs. colocated teams. Colocated teams feel like they communicate better. But remote teams force you to use a different communication style. That will impact the entire process. And what about remote teams having access to vastly more talent?§
Where teams become “low performance” are where they make decisions that are not really about tradeoffs, that have no upsides. I would put lack of automated testing and code review as one of these decisions.
Whatever the team’s choices – build-yourself vs. off-the-shelf, remote vs. collocated – I believe all types are capable of creating great codebases, products, and work environments. I’m honestly excited to see the diversity of companies and what I can learn from each one.
† I’ll warn again, these are my personal generalizations- there are plenty of exceptions and I’m not looking to litigate them as they are not the point.
‡ You can certainly go overboard on build-yourself. At CCP, we couldn’t use any off the shelf Python tools because their version of Python required a custom runtime.
§ This cultural impact is also why I’m so skeptical of collocated teams with a couple remote members functioning well.