What makes a remote development team successful? How can you build a team of employees who work together effectively across continents and time zones—even if they’ve never met? I’ve spent my entire development career working primarily remotely at a huge mix of companies, and in that time I’ve learned a lot about the benefits and pitfalls of different approaches to remote work. For the last three years, I’ve had the pleasure of leading the fully remote development team at SpringboardVR, where I’ve implemented what I consider to be the ideal setup for remote development teams.
##Don’t Blend Offices and Remote Workers If you’ve started as a traditional office-based company, it can seem incredibly appealing to start adding some remote employees to the mix. Maybe you are running out of office space, or you’re trying to hire for a role that is hard to fill locally, or maybe you’re just trying to save some money compared to local salaries. The sad fact is that mixing office and remote employees just doesn’t work well. I’ve spent time working remotely for two companies that mixed office workers and remote workers and both were a terrible experience—both for me and for my co-workers. It’s easy for a fully remote team to get to know each other and become close, and it’s easy for an in-person team to do the same, but it isn’t easy for a mixed team to do so. There’s a wall that gets formed between the two groups where the remote employees are treated like second class citizens to the in-office ones. It’s never (well, at least not in my experience) an intentional occurrence, it’s just what happens naturally. The in-person employees communicate differently, don’t document information the same, and don’t feel the need to build the same kind of relationships with their remote counterparts that they do with their in-office co-workers. It’s an issue shared by companies who have offices in different parts of the country—and in companies spanning multiple countries. How do you grow a shared culture when most of your employees across branches never interact other than over email? It takes a proactive effort of visiting each office and spending some time face to face with your counterparts to really ensure a cohesive culture develops. I am sure there are some companies out there that are effectively blending both office and remote employees, but I always try to avoid it—especially as a developer. Unless you like working on little bug tickets all day and not having much interaction with the rest of the team, it’s just not a good experience.
##Hire Everywhere—But Nearby First One of the most amazing parts about working remotely is being able to hire from anywhere in the world. Our team consists of members from Canada, the United States, Panama, Germany, Poland, and the United Kingdom. It’s amazing to be able to interview people in any country of the world and get a diverse team—but it can be a problem to hire too far away too quickly. We hired one developer in Asia and it was incredibly difficult for both them and the rest of the team. They would stay up late for our team calls every week, and enjoyed a lot of time working with our Europe-based developers, but they weren’t connected with the rest of the team in the same way. Documenting effectively and working asynchronously as possible allowed them to be a productive employee, but it limited their ability to feel like a cohesive part of the team. Too often I see job postings that are fully remote but with very stringent requirements about working 9 to 5 in the company’s local timezone. This really is the opposite of the dream fully remote team. You should be able to work at the hours you’re feeling most effective, rather than arbitrary hours set by the company. A few hours of overlap is important—an entire workday is not. When you’re just starting to grow the team, make sure your new team members will have at least 3 or 4 hours of overlap with a chunk of the rest of the team. It will make it much easier for them to get involved in the company and its culture.
##Meet Up Early and Often No matter how many video calls you have together, how many team bonding exercises you do remotely, or how many video games you play together in your off hours, nothing compares to getting some face-to-face time with the rest of your team. I truly believe that an effective and productive development team can be built fully remotely—just look at GitLab and InVision—but nothing replaces the value of having some in-person time with each other. The two biggest values we get from these are sharing of company vision and team building. It may seem like you’re paying your employees to spend a week off at summer camp together but the long term benefits of this time are astounding. Watch out for the “Post Retreat Sadness,” though—the first week or two after a retreat everyone may be feeling super motivated and in-tune with the company’s vision, but they’re going to really miss seeing each other every day. I love GitLab’s approach of providing a stipend for anytime someone travels to meet up with their co-workers. Even providing a small amount per coworker really encourages natural meetups. Many times, I’ve tacked on a visit to a remote coworker to a vacation that’s in their region. Currently at SpringboardVR, we have one full company retreat every year and multiple smaller developer meetups where possible. The goal is to get this up to two full team retreats every year, plus more opportunities to meet up at conferences and events.
##Use Webcams on Every Call When you’re not seeing someone in person on a regular basis, it’s amazing how you can dehumanize a voice on the phone. Webcams should be on by default on every single call. It helps build connections and empathy between your co-workers in very unexpected ways. And as a bonus, iIt also lets you see any cute animals your co-workers may own! As a VR company, we’ve been experimenting with doing meetings inside of VR. It’s been an interesting tradeoff of complete immersion in your meeting (without the distractions of Slack or email) but being without access to things like meeting notes or screen sharing. We’ve found that for smaller check-in calls with 3 to 5 people, VR meetings have been very effective to keep us all engaged—but for longer calls or calls where we need to refer to a document, they just aren’t there yet.
##Document Everything to Work Asynchronously The most important part of effectively working as a remote team is being able to work asynchronously. If you’re continually running into blockers that require someone else on the team to act, it’s going to really slow everyone down. All infrastructure should be as self service as possible. Admin access to all tools, easy self deployment options, and clear detailed documentation is necessary. If you’ve never worked in an asynchronous manner before it’s going to take some time to get used to. We’re still working on this and are always trying to improve our documentation and processes. Every time we onboard a new team member, it helps us feel out the weak spots in our documentation, and to keep improving!
##Experiment and Learn Remote teams aren’t a one-size-fits-all situation. Every team is going to have its own values, its own qualities, and its own approach to work. You’re going to have to experiment, listen to your team, and always try to improve. I truly believe that remote working is going to be the future of work. It has so many benefits to both employers and to employees that it is just a no-brainer to me. The hardest part is going to be learning how to build an effective remote team—and that’s learning we all need to do together and to share! Working completely remotely can be difficult, but it’s a way of working I don’t plan on ever giving up—and I know most of my team feels the exact same way. What has your experience been like in remote and partially remote teams? Any tips or tricks you would like to share? I’m always happy to hear them! Let me know in the comments below.