Building Distributed Engineering Teams
Building Distributed Engineering Teams
If you are only willing to look at candidates within San Francisco you are making your job 1,000 times harder from day one.With 860 thousand people in San Francisco, 326 million people in the United States, and over 1 billion people on the western hemisphere, there are massive upsides to having a distributed team.
In the next few paragraphs, I hope to share some lessons I’ve learned over the past twelve years building distributed engineering teams.
Why?
First, the obvious, because a significantly expanded candidate pool is a massive leg up on the competition. Many companies have a few remote employees. When I talk about a distributed team here I am specifically referring to an organization where the majority of the people work from somewhere other than the company’s main office.
Another big motivation for having a distributed team is that it enables you to build a more diverse company. Hiring people who have distinct experiences, backgrounds, and cultures becomes more achievable when you look outside of Silicon Valley. Chances are whatever you are building is going to be purchased and used by a diverse group of consumers, the more inclusive your team is, the more insight you have about what to build, how to support your customers, and how to sell your product.
Over the last seven years, we’ve grown the engineering team at Doximity from a handful to nearly 100 people, over 70% of whom work from 34 distinct U.S states and six different countries. Together we’ve created the world’s largest professional network of U.S. clinicians, with over one million verified members, something that has never been done before. Since 2014, Doximity’s revenue has grown 754 percent. In 2016 we topped Deloitte’s Technology Fast 500 list as the fastest-growing company, achieving over 14,350 percent revenue growth.
Aren’t Distributed Companies at a Disadvantage?
How can we guarantee a culture that fosters innovation even though employees aren’t in the same room? Google, Facebook, Amazon, amongst others claim that to innovate, you must be in the same physical space. Contrast that with the premise that people hate open offices, and the myth that we’re more collaborative, creative, and productive all together in one big office has been debunked more times than I can count.
Nowadays, the story has changed. Innovative businesses like Github (which was recently acquired by Microsoft for 7.5 billion dollars), has the bulk of its workforce distributed. Buffer, Basecamp, Gitlab, and Automattic are just a few examples of companies that have grown to be mature and make millions in profit while employing a fully-distributed workforce. Employees of Automattic — the company behind WordPress.com, Longreads, Gravatar, and other popular tools — work from anywhere, and the company’s team of nearly 500 employees lives across 50 countries. This fully-distributed team built and maintains WordPress, a platform that powers 27 percent of the Internet.
Elastic, a publicly traded company with a market cap of 4.5 billion dollars has a fully distributed workforce spread over several countries. Companies like these often outperform their competition. Moreover, they’ll continue to poach employees from companies refusing to adopt a distributed employment model.
The following sections will hopefully help you establish a successful distributed team.
Fine-tune your Recruiting Practices
Take a close look at your hiring practices. Over the years, we’ve chosen a few fundamental ground rules on hiring employees who will work from home. When interviewing someone for a position outside of the San Francisco office, we focus on the person’s ability to self-manage, closely followed by concise and fluid communication, self-respect, and respect for others.
As with anything else new, working from home take a bit of adjusting. Hiring someone with remote work experience goes a long way to smooth out the process. Whenever we speak with a candidate considering a remote position for the first time, we dive into the process and communicate pitfalls that other remote employees have encountered during their tenure.
We learned this the hard way. Several years ago we hired a software engineer who had never worked from home before. He underestimated his personal need for dedicated and quiet office space and the value he placed on daily face-time with colleagues. We now reinforce these details during the interview. Unfortunately, several weeks into the job, the person in this particular example decided a remote environment was not for him.
Create a Connection
Strive to establish a personal connection very early into the process. Put a face to a name as soon as possible. We do this via video interviews and screening calls. Numerous studies show the value of social connections. We ask new employees to spend at a minimum their first week working in the office. They get to meet the team based in the San Francisco office, have lunch together, and, most importantly, form a personal connection with their colleagues and mentors.
We encourage and provide the means for remote employees to visit the office at intervals that make sense for their respective teams. Once a quarter we get together with the team for a few days to retrospect, share lessons learned, and plan for the quarter ahead. These quarterly off-sites allow us time for face-to-face team bonding experiences. From skiing to horseback riding, we’ve spent high-quality and fun times together which strengthened personal connections amongst teammates.
Communicate Company Values
How to share the company’s core values to people who are not physically present in the shared office space? As it turns out, instilling the company’s and teams’ values onto remote employees is no more difficult than with local ones. Bring people into the office for their first week or two and use this time to review, discuss and most importantly practice these values first-hand.
Getting a few days in person with the team has a massive impact on the exchange of culture, not only the company’s but also each person’s heritage and location-based customs. We have found that those simple steps make shared company values prevail regardless of physical location.
There are indeed cultural differences when you venture out into another country. Honestly, you do not have to go that far, you can find cultural differences between people in San Francisco, New York, and Portland as well, so you’ll have to ensure you handle it no matter what.
Treat Collocated and Distributed Equality
Over the years, I’ve seen and heard about many failed attempts at a distributed workforce from other companies. I can attribute these issues almost exclusively to failing to realize that, once you have one remote employee, you need to think of everyone as being a remote employee. Ensure you can communicate asynchronously and that you enforce continuity of discussions independent of location. Even after several years we still encounter opportunities to reinforce this thinking.
A couple of years ago I received feedback during a one-on-one with an engineer. This person felt the collocated team would take discussions that started online into an offline medium such as face-to-face in-office and later return with a solution, therefore unintentionally excluding the remote employee from the process. Goes without saying this left a sour taste in their relationship, we remedied the situation quickly and learned from it. Be mindful and treat everyone equally.
Virtual Water Cooler
Asynchronous communication allows us to filter distractions. However, it also filters out tonality and spontaneity — which are key components in the way we communicate with and understand others. We encourage virtual water coolers around topics people find interesting. Topics range from skiing to gaming, to pets, to music. Conversations in these online channels are typically not business related; providing a casual medium for discussions gives people somewhere to grow their connections. These chat rooms facilitate a comfortable place for people to bond, as they would otherwise do near a physical water cooler in the office.
Focus on “Delivery Teams”
What about productivity? How do we know an engineer is going to be productive if we can’t see them? Hire self-managing people, keep the teams small, and focus on “Delivery Teams.” A delivery team is composed of people with complementing skill sets necessary to ship the product to production. These delivery teams are a tight-knit group of 6–10 people who work closely together to build and deliver solutions. Each person on the team owns the overall quality of a small part of the product. This allows distributed groups of people to have clarity and ownership around what they’re building, which improves efficiency and lends itself very well to the distributed nature of the organization.
But What About Timezones?
If you recall in the beginning, I mentioned the size of the western hemisphere. With very few deliberate exceptions, we’ve focused exclusively on +/-6 hours timezone difference from Pacific Time which gives us access to over 1 billion people. A timezone differential larger than 6 hours is a bit more challenging, and it is not something I recommend lightly.
Leverage the Right Technology
Ten years ago, it would have been impractical to employ a distributed team, given the technical limitations. Today, video-conferencing, screen-sharing, and mass adoption of asynchronous communication — like Slack and others — help us achieve this flexible work environment. Each company will end up adopting what works best for them, and every process takes a bit of experimentation. We’ve tested about half a dozen solutions and finally chose a set of technologies we found to work best.
Video Conferencing: Our San Francisco office has 18 conference rooms, each one of them outfitted with a ChromeBox, and a large, wall-mounted TV. ChromeBox integrates directly with Google Calendar and makes joining meetings a breeze. Each calendar invite automatically contains a video conferencing link. In the past, we’ve tried other systems, namely Skype and HighFive, both which needed additional software to synchronize with event calendar invites.
Asynchronous chat: Slack is our tool of choice, but there are a few alternatives, such as Skype and IRC. Even Facebook is trying to take a crack at it with its “Workplace” tool. We’ve chosen Slack because it provides the integrations we needed to consolidate work into one platform. These integrations include alerting from our DevOps stack, calendar reminders, and automated auto-responders.
Screen-sharing: When in doubt, screen-share. Many tools nowadays allow for remote control and annotation directly on the screen, enhancing the “being present” feeling. Whether we’re helping a colleague with a configuration issue, pairing on a complex piece of code, or just rehearsing a presentation, the ability to quickly share the screen makes the whole process much more pleasant.
Voice Calls: Know when to pick up the phone. Asynchronous text chats are efficient, but not always the most effective way to converse. Realize early and often when a particular text chat would be more effective over voice. Text conversations make it nearly impossible to convey tonality, emojis but are not substitutes for a call. When in doubt, pick up the phone and make the call.
Financial Advantage
There are many articles out there discussing the economics and the potential savings when hiring people outside of expensive metropolitan areas. I don’t want to focus too much on the topic of “getting a bargain.” A distributed team is less about saving a penny and more about hiring top talent regardless of location. Instead, I’d like to highlight that by looking outside the box you’ll likely be able to hire someone who will deliver twice the value for 80–100% of the cost.
Why Bother?
There is certainly a learning curve for establishing a well-rounded distributed culture, but the outcome is well worth the effort. For an environment to be successful, ensure the people you hire will perform well when left unsupervised; this means doing the right thing even when nobody is looking. Distributed employees must be clear communicators and share a high sense of pride in the quality of their work. They must be able to self-manage and be receptive to cultures other than their own.
We continuously collect feedback during 1:1s to improve our practices. And have found that the choices described above have been immensely helpful at increasing employee happiness, productivity, and retention. Take some time to fine-tune your company’s onboarding and mentorship methodology, and, most importantly, facilitate an environment that enables asynchronous communication to foster a diverse, distributed environment you want to create.