Making Remote Work

There's been a lot of noise around the web about Reddit giving its non-Bay Area employees until the end of the year to decide to pack up and move to San Francisco or seek alternate employment:

I'm fortunate enough to work remotely at WellMatch, and we've gotten quite good at remote work in the year I've been here. The Reddit dust-up and a few subsequent conversations with friends on Twitter got me thinking about what we've done to make remote work so well for us at WellMatch. As someone who's been at least partially remote for more than a decade, here's what I think makes us different:

Everybody's Remote

WellMatch doesn't have an office. We have some shared office space available to us in NYC, but we only use it for the occasional face-to-face meeting. This means everyone in our company, from the president on down, works remotely. For our developers, tmux/vim is our office; HipChat is our water cooler; and Google Hangouts is our conference room, happy hour pub, and everything in between.

In a mixed colocated/remote environment, the people who go into the office every day have several distinct advantages over the remote diaspora.

First, the boss gets to see the office worker's butt in their seat “getting stuff done", where the case is not always so clear for the remote worker. It takes a good manager to be able to judge people by their work output and not give unfair deference to the people they see in the office every day.

An in-office developer also has the ability to get up and walk into their manager's office anytime to discuss most anything. The remote worker has to somewhat awkwardly try to arrange time for a conversation from looking at their boss's (likely very busy) calendar. They have no way to discern their manager's busyness or temperament that day before asking for time, and they don't have any way to bump into the boss at the coffee pot or water cooler for an informal conversation.

There's also the awful company-wide conference call where everybody in the office crowds around the fancy Polycom conference room phone if you're lucky (or an iPhone in speakerphone mode if you're not). You, as the remote worker, have to try and figure out who said what, assuming you can understand anything being said in the first place. If you have something to add, you have to try five or six times to interject because everyone in the office has forgotten there's anyone joining remotely at all.

I've yet to see any of these issues at WellMatch, and it's because being fully remote puts everyone on equal footing.

Human nature dictates that we trust tangible things over intangible ones, things that we see regularly over things that we don't, and so workers in the office who get regular face-time with each other will default to trusting each other more than their remote colleagues. It's nothing intentional or malicious – it's just how our brains work. The only truly effective way I've seen to combat that tendency is to do what we've done at WellMatch: put everyone on equal footing by being fully remote.

We Pair Because We Care

At WellMatch, we pair program very close to 100% of the time. It's a habit we picked up from our friends at Hashrocket, and it's a big part of what makes remote work so well for us.

One of the arguments for colocated work environments is that it makes it easier for knowledge to flow around the organization through overheard conversations and spontaneous meetings. Pairing delivers the same benefits, especially when practiced promiscuously. When you regularly switch up who you're working with, you're forced to both share and learn knowledge acquired by your pair in the weeks prior. Pairing also helps spread organizational values and culture organically, especially when someone new works with someone well-established in the shared values of the group.

Promiscuous pair programming helps avoid the information and trust silos so common in both remote and colocated organizations.

Pairing also helps keep developers from drifting away unnoticed. When everyone is in an office together, it's easier (not easy, but easier) to notice when someone is becoming frustrated, disengaged, or despondent, and to intervene before it's too late. Working alone remotely makes it even more likely for someone to drift away, but pairing is an almost perfect foil. It's hard to disengage and start trawling job boards when you're on Skype and sharing a text editor with another developer, and pairing promiscuously keeps you regularly connected to everyone else in the organization.

We Strive Towards Empathy and Egolessness

Our developers, almost to a person, say that WellMatch is one of the closest teams they've ever been part of. It seems really odd to say about a completely remote team. We don't have a lot of the normal "team building" shtick that managers usually think is responsible for building a solid team. Instead, it's happened very organically, and it has a lot to do with the kind of people we've been fortunate enough to hire.

Pair programming, it turns out, is a neat hack for hiring developers with very high emotional intelligence. Developers who seek out full-time pairing tend to be highly self-aware. They're comfortable being vulnerable and admitting they don't know something. They happily give credit to others where it's due, and they mostly avoid the common software developer pitfall of trying to make themselves look smart at the expense of everyone else on the team.

Empathy, egolessness, and vulnerability will emerge organically across your team when you seek out developers with high emotional intelligence.

These traits aren't unique to remote environments, but they have a lot to do with how successful we've been at working remotely. Empathy helps us overcome the communication constraints introduced by foregoing traditional offices. Egolessness helps us share credit and ensures everyone feels a part of success (and that no one gets scapegoated for failure). Vulnerability lets us share when we're struggling or becoming disconnected instead of suffering alone in silence.

There's plenty more that we do at WellMatch that has helped us be successful as a remote engineering organization:

  • We have regular offsites so we can share face time.
  • We have daily standups and weekly retrospectives like any good agile engineering group.
  • We've spent a non-trivial amount of time honing our tools so they work well for all of us.
  • We have a remote happy hour in a Google Hangout every Friday.
  • We do a weekly book club together so that at least some of us are always learning about the same thing.

But all of that pales in comparison to the three points above.

The biggest key to being a successful remote organization is deciding to be a successful remote organization. It requires commitment from the very top on down, but it brings the incredible benefit of being able to hire the best people possible without worrying about where they live. It's unfortunate that the myth of remote work ineffectiveness still lives strong among the elites of Sand Hill Road, but it is just that: a myth. Any organization willing to put the time, effort, and energy into hiring the right people and setting up communication practices that work for those people has fantastic odds of success (without all the rent and relocation expenses).

Disclaimer: The opinions expressed in this piece are mine alone, and originated from my vantage point as a team lead at WellMatch. They do not represent the views of WellMatch, Healthagen, or Aetna in any way and should not be considered official or sanctioned.)