A lot of energy has been expended over the last few months debating the merits of remote work. Unfortunately, not much information is shared about how to setup remote work so that you and your team can be successful.
After we posted our job for a content marketer, I got a lot of questions about remote working and how our team manages to make it work, so I thought I'd explain here.
Now, if you want to debate what's best: remote work or co-located work, this post isn't for you. But, if you want some ideas on how one team has setup their team to be successful at remote work, then stick around. This post is for you.
From day one, (October 2011) Zapier has always been a distributed team. Even though Bryan, Mike and I lived in the same city, we had different schedules and were bootstrapping Zapier on the side of our day jobs and school. We worked on Zapier in every spare moment we each had, but those moments didn't magically line up at the same time when we could work in the same room, so by necessity we became a remote team.
In June of 2012, we were accepted into Y Combinator and moved into a shared apartment in Mountain View, California. The next three months were the only period in our company's history where everyone has been in the same city at the same time.
In August of 2012, Mike moved back to Missouri while his girlfriend was graduating law school and in October of 2012 we started hiring. And since we were already a distributed team it made sense to keep moving that way since we could hire people we knew were awesome, but just didn't live in the places we lived.
Over the course of 21 months, we've learned a few things about building and managing a remote team. There are others with more experience at this than us. I'm not sure how large it will scale, though companies like GitHub, Automattic, Citrix and others have proven that it can be done. But if you're a small team and want to dip your toes into remote work, consider this your crash course.
It's highly unlikely you could just pluck any random people, at any random moment in history, dispersed around the globe and expected them to build something amazing.
We've found there are three important ingredients to making remote work, well, work: Team, Tools, and Process.
By far the most important of the ingredients is the team. Not everyone can work in a remote environment. Not everyone can manage a remote environment (though I suspect with a bit of time and learning that a lot of managers could figure out how to make it work). Therefore, it's important to assemble a team who is capable of executing in a remote environment. Here's what has made the best remote workers for us:
1. Hire Doers
Doers will get stuff done even if they are in Timbuktu. You don't have to give doers tasks to know that something will get done. You'll still have to provide direction and guidance around the most important things to be executed, but in the absence of that, a doer will make something happen.
2. Hire people you can trust
Remote work stops working when you can't trust the person on the other end of the line. If you continually find yourself worrying what someone is doing, then you are spending brain cycles focusing on something other than the product. Trust is key.
3. Trust the people you hire
The flip side of this is you also need to exhibit trust with the people you hire. As a manager, you need to learn to manage by expectations rather than by "butts in seat," so make sure you can show trust in those you hire.
4. Hire people who can write
In a co-located office, a lot of information is shared in-person. In a remote situation, everything is shared via written communication. Communication is one of the most important parts of remote team. Therefore, good writers are valuable.
5. Hire people who are ok without a social workplace
It'll be important to try to create some social aspects with a remote team. But the truth of the matter is that remote workplaces are usually less social than co-located ones. People on remote teams need to be ok with that. And the best remote workers will thrive in this type of environment.
Tools are really important in a remote workplace because they enable you to better organize the team and keep everyone on the same page.
In a co-located facility you can always round up the team for an all-hands meeting to steer everyone on track. In a remote team, you'll need the right tools to make sure everyone stays on the same page and can continue to execute without a physical person standing next to them.
Here are some tools we've found handy:
Campfire is our virtual office. If you're in Campfire then you're at work. A group chat room like Campfire is also great at creating camaraderie.
Depending on your team size, you'll want to make use of rooms in Campfire as well. At a certain size it can start to get noisy, so it makes sense to section off rooms into things like "water cooler", "engineering", "marketing", etc. I would hold off on this as long as possible though.
Sqwiggle is a persistant video chat room, but instead of having a live video feed on all the time like you might do with Skype or Google Hangouts, Sqwiggle takes a picture of you every 8 seconds. It's a great way to see everyone at their workspace while they are working. And whenever you do want to chat with a person you can just click a button and you'll have a live video chat up in less than a second.
Everyone likes to hate on email, but in a remote team it's still immensely valuable because, no matter what, you aren't going to take email out of someone's daily routine.
We have email setup with lists that let you easily ping the whole team if you'd like. This makes it easy to involve the whole team in discussions and it's documented for reference should you need it. A great example of a company using email effectively is Stripe. While they aren't a remote team, the process could easily be replicated in a remote setting.
Trello acts as our default roadmap. Anytime we have something we'd like to do, we add it to a to-do list in Trello. In most situations, you'll find yourself creating way too many cards trying to do too many things. The trick we use to avoid getting card overload in Trello is that in order to create a card you also have to write a detailed description of what the feature is, why it's important, and what the results of a successful implementation of this feature should look like.
This works great for remote teams, because if anyone in the company is looking for something to do, they can just go pick a card off the Trello board and know that it's going to be a positive feature for the product/company.
Issues and pull requests are used quite liberally. Much how GitHub uses GitHub to build GitHub, we use GitHub to build Zapier. The beauty is that all the discussion is documented in pull requests and issues and it's logged for reference later if we need.
iDoneThis helps us replace our daily standup. When we first started hiring people we tried doing a daily standup via Google Hangouts, but it ended up being too heavy and distracting for the team. iDoneThis replaces this.
With iDoneThis you send the things you do each day to them and the next morning iDoneThis sends out a digest of what everyone on the team has been working on. Then the whole team is able to comment and discuss items that are relevant to the team. So instead of trying to coordinate a 15-minute chat with multiple people across multiple time zones, we can just use iDoneThis.
iDoneThis is great for personal use as well, because it can help build habits. They also have a great set of addons that make it play nice with other tools.
7. Chrome Profiles
Many of us use multiple profiles to keep a distinct "work environment" separate from personal browsing. With Chrome Profiles you can have two sets of bookmarks, extensions, lastpass accounts, google accounts, even search engine keywords that enable you to work in a manner you're used to, while still being able to use the same machine and browser for both work and personal matters.
Since we have logins to hundreds of services it's helpful for anyone who walks into the company to be able to access any of them without having to fire off an instant message or wait for an email reply. With LassPass, any teammate can login to any of the services we use or integrate with without having to know the login credentials.
You're bound to do a lot of writing at any company you work for. At Zapier, it's no different. Whether it's a blog post, an important email, copy for the site, or documentation for the product it's important that we put a lot of effort into crafting our words. Draft is like GitHub, except for writing. Draft lets you easily version your post and then get feedback from teammates asynchronously.
10. Google Docs
For almost any other documentation Google Docs is great. We share spreadsheets for ad hoc analysis of key metrics. We share spreadsheets with team info and other vital info that might be used later. We share documents for contracts and records. Anything that might get used multiple times should be documented and Google Docs is an easy, shared environment to make that happen.
11. Hello Sign
Every now and then you and your employees might need to sign something. Spare yourself the hassle of printing out the document, signing it, scanning it back onto your machine, and sharing the document with the next person that signs and instead just use Hello Sign. It'll make your head hurt a lot less.
12. Google Talk
The last major tool we use is IM via Google Talk. This is perfect for quick questions that teammates can answer almost instantly.
The third ingredient in a powerful remote team is process. I know most people don't like to think about process, and process feels boring and rigid. But if you think of process as "how we work" it starts to feel more powerful.
Good processes let you get work done in the absence of all else. It provides structure and direction for getting things done.
That doesn't mean processes should be rigid, unchanging or pointless though. Process, at a small company, is more about providing a feedback loop so that you can measure progress for both the company and the people in the company.
Here's a few of the processes we use to make Zapier run. Or is I like to call them: How We Work.
1. Everyone does support
The customer is our lifeblood. We strive everyday to solve our customers' problems and help make their job just a little bit easier. When everyone on the team does support, everyone gets to hear the voice of the customer.
Also, the people who build the product also end up supporting the product. If a customer is angry about a bug, then the person who introduced said bug is going to hear about it and fix it right away.
2. A culture of shipping
Since everyone does support, we've built the dev schedule so that each developer spends three weeks on product features, followed by one week on support. The three weeks on features gives a developer enough time to ship something sizable. At the end of those three weeks ideally you'll be able to present your shipped feature.
This also has the side effect that every Friday someone has shipped something important which is great for morale and creates a habit of progress in the company.
3. Weekly Hangouts
Every Friday at 12pm PDT we get together for a weekly Google Hangout to summarize that week's events. Each team member goes over what they are working on and what roadblocks they are running up against (if they haven't already been raised during the week). Then the person who shipped something gets to show off their new stuff.
4. Weekly Learning
Right after our weekly hangout, we take a quick 10-minute break and then come back together for a short presentation. Each week one person in the company presents on any topic of their choice for about 10 minutes. This can be something related to the company (I've talked about how our internal life-cycle email tool works) or more about a cool piece of tech (Cooksey recently gave a talk about web workers). These talks are recorded so that people joining Zapier in the future have access to this information. In addition, many times the talks get turned into blog posts that end up being marketing for Zapier. Cooksey's talk about web workers ended up becoming this Intro to Web Workers post which brought in over 20,000 visitors to Zapier.
5. Monthly One-on-Ones
In every job I ever had (even co-located ones) there wasn't enough feedback between me and my supervisor. So at Zapier, I setup a recurring monthly event with each team member where we both jump on Skype or Google Hangout to chat about three things: what's one thing I can do better to help him with his job, what's one thing he can do better to improve at his job, and what's one thing the company can do better to make everyone's lives easier.
The first question teaches me how I can help my team be better at their jobs. The second questions helps my team members get better at their job. The last question helps the company become a better place for everyone.
We specifically limit it to one item per question. One item is easily achievable for a person each month. But over time, being able to fix one issue a month adds up.
The answers to each monthly session are logged in a Google Document so that the next session we can reference the previous month's information and check on how we did.
These review sessions are especially great at revealing how we are doing as a remote team, since it lets me get feedback on both small and big things we can do to make the company more enjoyable. For instance, I found out that Cooksey and James occasionally co-work downtown in Columbia and ended up paying for parking on their own dime. So now we're in the process of setting up credit cards for everyone with reasonable spending limits. These types of small things go a long way toward improving the experience for everyone.
6. A culture of daily feedback
As I mentioned in the tools section above, we use iDoneThis to help stay on top of what everyone is actually getting done on a day-to-day basis. This helps eliminate blocks as they come up and keeps everyone up-to-date on what everyone else is up to.
Many of us also automate our iDoneThis to make it iDoneThis more of a habit. For instance, I instant message the Zapbot with my iDones. The devs have their GitHub commits go to iDoneThis and others make their Evernote diary notes go to iDoneThis.
7. Building culture in person
In person interaction is valuable for any team. There is definitely something unique that happens when teammates can work on something in person. As a result we strive to bring the team together two to three times a year somewhere cool.
This August everyone is getting together in Seattle at a big AirBnB place with this awesome view.
In addition to the all-company get togethers, small groups of us might get together on an ad hoc basis throughout the year to coordinate the start of a major project or feature. Usually this is just one person jumping on a flight to visit another person.
If this seems expensive, that's because it is. But the great part is that you'll likely have the money to cover this plus more since you don't have to pay for a central office that everyone is working in.
8. Automate anything that can be automated
The core of Zapier is automation. There are a couple reasons why we automate things. One, it allows us to keep the team size small since we don't need people on staff to perform repetitious, mundane and boring tasks. Two, it lets teammates focus on high impact work nearly all of the time rather than figuring out less impactful things, like the proper deploy commands.
9. Random Checkins
One thing we've been experimenting with lately is random checkins. A random checkin is usually a quick message to a random person on the team asking for input on something or checking to see what they are up to. The idea is that this helps everyone learn what each other is doing and also creates some interesting ideas at the intersection of the two peoples expertise. We haven't been doing this for long, but so far so good.
A lot of this has been knowledge built up from others. Unfortunately, not many people write about the topic of remote working and how to manage it. Most articles dive only a inch deep with light weight suggestions like "use Google Hangouts" which isn't super helpful.
The best way to learn about remote working is to ask other people who do remote working. I've learned a ton from people like Lance Walley at Chargify, Joel Gascoigne at Buffer, the entire 37Signals team, Zach Holman at GitHub and a slew of other founders and remote workers.
If you are looking for other great resources here are some that are worth checking out:
I'm also pretty excited about the upcoming release of 37Signals book Remote.
Hopefully this article can give you some deep insights into how one team manages a remote team. Don't take this as universal truth though. One of the beauties of a remote team is that because remote work feels more like an expriment everything else feels like it can be more experimental. So go ahead and experiment! The biggest wins aren't usually found in a blog post, but in what you discover on your own.
If you work on a remote team or manage a remote team I'd love to hear what you do to make remote working work for you. Please feel free to share in the comments. :)