Ever been on a great distributed or remote team before? Everyone gets along, solid products are built and big challenges are faced head-on. You enjoy the day-to-day, learn a ton and routinely feel a warm sense of accomplishment. You even perk up for business-related emails and chat notifications during off-hours.
Solid teams like this are built by prepared team leaders. That’s you!
It’s difficult for even the most experienced managers to set up a great team given the outside variables in the mix: compensation, work environment, and project context to name a few. But even if all of those factors line up, a fly-by-the-seat-of-the-pants manager will torpedo a team’s chances for success, especially if the team is distributed or remote. You need to think ahead and plan out a blueprint for your team.
So what can you do to be a prepared manager? Someone who everyone wants to work for?
Our goal for this guide is to provide you with a blueprint of proven techniques and approaches while keeping everything as actionable and succinct as possible.
Topics covered in this guide:
- You Must Get Hiring Right
- Establish Processes and Patterns That Build Trust
- Take Advantage of Tools Built for Distributed Teams
- Keep it Fun, Dammit
- Stay Current
Part 1 of 5: You Must Get Hiring Right
Envision the kind of team you’d like to run and the values you’d like the team to share. Document those values and then hire to them. Do not settle.
Trust and reliability need to be two of these values, particularly for a distributed team. If you find yourself “keeping tabs” on a team member as a manager, something is wrong. Not to mention it’s pretty much impossible to do that when you’re not sharing the same physical space.
You will be tempted by compromise: “he’s a little flaky, but he was one of the original authors of the XYZ library we use” or “she rubs people the wrong way sometimes, but she’s an optimization genius.”
Usually, this is an indicator of lower emotional intelligence and perhaps behavior that lacks empathy and people skills. In other words, this very smart specialist in one area hasn’t gotten the hang of the general art of collaborating with others.
Emotional intelligence and communication skills are more important than any specialized skill for remote teams. Why? Because communication will often be handled asynchronously over written channels: email, work ticket comments, commit messages, etc. If a team member can’t play well with others in person, there is no way it’s going to work with written words. Especially with specialized subject matter.
And regarding written communication, be sure your candidate can do it effectively through your screening process. Again, with distributed teams, most of the communication will be asynchronous and typed out. Conveying ideas in writing effectively and succinctly is key.
Given these general principles, here are three actionable ideas to incorporate into your hiring process:
Conduct Face-To-Face Interviews, Somehow
Even though your candidate will work remotely, it’s important to look them in the eye and have an in-person interaction. There will likely be criteria from your team value set that can’t be evaluated any other way, including an assessment of emotional intelligence.
Phone calls are good enough for screening, but after that, have an in-person meeting or at the very least a video call for all other interviews. Even pick up a travel tab - it will be a small price to pay relative to hiring, training and firing someone who’s not right for your team.
Solve a Real Problem with Your Candidate
Find a way to solve a real problem with a candidate. Picking a small task the team is working on is much better than some canned algorithm. Tackle the problem with them, but don’t lead. Have them drive the keyboard and mouse. This is a good way to get a feel for how your candidate will approach problems independently.
Have Your Candidate Present Something
Getting your candidate to diagram something on a whiteboard (or virtual whiteboard) is another fantastic way to gauge independent problem-solving skills as well as collaboration abilities. Let them pick the topic - perhaps the last big problem they solved at their last job. You can use this technique to judge both analytical abilities and communication skills.
If you do hiring right you will have a huge advantage out of the gate: a bunch of people who are already bought into the same set of values you’ve deemed important to your team’s success. You’re a long way towards establishing trust and productivity this way.
Hiring is the critical foundation for everything else you do as a team and ridiculously hard and expensive to undo when you have a bad fit on the team. Don’t skimp on cost or time here.
- Document the core values of your ideal team
- Make sure your hires are directly aligned with your team’s values
- Do not make value compromises for specialized skills
- Seek candidates with high emotional intelligence
- Conduct interviews face-to-face (or at least on video chat)
- Solve a problem with the candidate
- Have your candidate diagram and explain something to you
- It’s all about the people - you can’t do anything unless you hire right
Part 2 of 5: Establish Processes and Patterns That Build Trust
Having processes in place sounds boring and bureaucratic, but it’s the framework for how work will get done by your team. High-performing teams always have them established and documented.
Processes should not be positioned or written as rules - they are guidelines designed to remove obstacles and help the team get stuff done.
Keep the documentation light and consumable, but definitely have it around and available to the team without having to go through you.
Documented processes have the benefit of setting expectations with everyone on your team. Nothing incites doubt and kills productivity faster than a surprise meeting or review.
If possible, use video chat instead of conference calls for meetings. Video chat increases engagement and decreases the chances that participants will be distracted by their smartphones or computer screens.
Given these general principals, here are some actionable processes to use with your team:
Listen and Adapt
First and foremost, make sure you are listening to your team at all times. Every meeting and interaction is a learning opportunity. Don’t be afraid to change a process that’s not working. This doesn’t mean you should switch things around all time - that can be harmful - just be willing to adapt to the specific needs of your team. Your processes are simply a rough draft at first - they will (and should) change as the team evolves.
When You Are Working, You Are Online
It’s very important for you and the rest of the team to respect work/life boundaries. Translated: do not surprise anyone with a sudden demand for their time outside of what you’ve agreed upon. It almost always creates resentment. That said, when a team member is working and available to the rest of the team will vary widely across remote teams and roles. A quick solution is to simply require everyone to maintain an “online” presence in the team chat room (we’ll talk about specific messaging tools later) when they are working. If someone’s offline, you and the rest of the team can assume they are unavailable unless there is an emergency.
Run a Weekly All-Hands Meeting
A short, weekly video meeting to connect everyone is an easy way to reinforce the notion that even though physical space may not be shared, there is a common purpose and goal. Time-box the meeting to 30 minutes or less and use the time to focus on big-picture items, like roadmaps, new hires or customer feedback.
Don’t let this meeting devolve into project minutiae or critical feedback - save that for a retrospective.
Have a Monthly Retrospective
Retrospective meetings - where the team looks back on the last period of work to look for opportunities to improve - are typically part of an agile process, but they can be incredibly valuable if done right in most any context. Running a retrospective is a subject for another course and there are plenty of resources out there for how to do this. Just make sure you have it as part of your team processes.
Schedule Regular One-on-Ones
Schedule a 20–30 minute video chat with each team member once a week. Do not do much else but listen and take notes, and position the activity as their time to use as they see fit. Your goal here is to help them in any way you can and understand what obstacles they are facing so you can facilitate removing them. You’ll learn a lot about the work they are doing and reinforce the notion that they are not in it alone, even if they are working by themselves at home or in a coffee shop.
Anchor It All with Daily Check-Ins, Snippets or Stand-Ups
There is no mystery within a high-performing team. Everyone needs to routinely understand everyone else’s status in terms of 1.) individual accomplishments day-to-day 2.) daily or weekly goals, and 3.) issues that block or prevent forward progress on a project. This context is an anchoring mechanism for the rest of the necessary communication and interaction throughout the day between team members. It’s also a great way for everyone on the team to celebrate small wins and realize forward progress - crucial for large or long-term projects.
Agile teams handle this with some form of a “stand-up” meeting - named as such to limit the time of the meeting by making sure nobody can sit down and get comfortable - in which these 3 topics are commented on in a couple of sentences by each team member. No problem if the team shares the same physical space and time zone. However, if you have a remote or distributed team, you’ll need some kind of tool or process to facilitate the gathering of this status information, like the one we’ve built with Status Hero.
Established and transparent processes build trust by laying out a framework for how the team will work and communicate. Keep them light, flexible and positioned as a set of guidelines rather than rigid rules.
- Document processes and have them readily available to the team
- Keep the documentation light and positioned as guidelines
- Listen to your team always and be prepared to change your processes
- Use online/offline chat status to reinforce work/life boundaries
- Hold weekly all-hands meetings
- Have a monthly retrospective
- Schedule one-on-ones with everyone on the team
- Keep day-to-day context transparent with daily check-ins
Part 3 of 5: Take Advantage of Tools Built for Distributed Teams
Since so many teams work remotely these days (or at least separated by multiple geographies), there are wide variety of tools out there to simplify and automate your day-to-day management needs and support your team processes and practices.
Make sure you pick tools to back an established team process or core value. Each tool or product should have a specific job it performs for you and your team.
Every team is different, and fortunately, most tools offer a free trial so you can see if there is a fit for your needs. Be ruthless about getting rid of anything that starts to feel burdensome - your goal should be to automate and save you and the team time.
Here are a few valuable and commonly adopted tools we use and how we use them:
Slack functions beautifully for team chats. Notifications, room settings, attachments and chat logs are all well designed and simple for anyone to use. The real power of Slack is how is easily it integrates with other services, allowing it to serve as an information and notification repository for things like CI runs, bug notifications or status snippets. (Be careful - Slack notifications can easily get out of control.)
Use Trello to keep a dynamic (and comment-able, if you like) roadmap of project milestones. It’s a simple way to stay transparent and keep your team informed of the big picture and longer-term plans.
Zoom is a video chat tool that makes starting and running meetings with remote team members a breeze. Use it for one-on-one and group meetings. Team members can use and share their screen from almost any device and the annotate feature makes collaboration really easy.
Notion is simple way to keep and maintain a team knowledge base. We use it for the wiki-like features, but you can also use an expansive set of task management functionality too.
Clubhouse is built to track and manage software development tasks. Everything is organized by feature stories, bugs, releases and chores. Features are assigned points from which team velocity is derived, helping give you a sense of how long it will take to deliver future features. However, it’s highly customizable and the paradigm works very well in most software development situations.
Obviously we’re a little biased here, but Status Hero is designed specifically for remote and distributed teams. It keeps your team in sync by sending a notification to each team member with a private link for quickly entering status updates each weekday (or whatever schedule you choose). Updates are automatically distributed to the rest of the team over email, Slack, HipChat, and others, reinforcing a culture of transparency and progress across multiple time zones and geographies. Integrations with tools like Trello and Jira automatically pull in activity to include with team members’ updates.
To the extent you can, everyone on the team should “eat their own dog food” and use the product/design/process you are creating. Perhaps you aren’t part of the target audience, but it will connect you and the team to the work through the eyes of your customer, which is usually the most important perspective. Here’s an unfortunate example of the folks at Microsoft neglecting to do this with the MovieMaker product.
- Take advantage of the rich set of tools out there to simplify your day-to-day work
- Reach for tools that help you and your team simplify and automate as much as possible
- Trial tools to see if they are right for your team
- You and your team should practice “dog fooding” and use whatever you are building
Today, in day 4 of our 5-day mini-course, we’re going to discuss ways to keep things fun for your remote team.
Part 4 of 5: Keep it Fun, Dammit
Your project will have some low points: a nasty bug, a disgruntled customer or other problems, big and small. High-performing teams counter this fact by keeping things lively with small distractions here and there. The idea is to find as many pathways as you can to connect your team members to one another. People tend to trust people they like and share ideas with, and finding ways for your team members to trust one another is critical when the inevitable low points hit. Look no further than the space station astronauts hamming it up on Youtube videos to witness a very smart team keeping things light.
Here are some ways to add some fun (and ultimately helpful) distractions to your team’s day-to-day:
Multiplayer Video Games
Video games are an amusing and non-stuffy team-building exercise, particularly games that encourage communication and the development of shared strategies. Fortnite and Minecraft are good examples to start with.
(Careful with this one - it can get distracting fast - just ask the Stamford office of Dunder Mifflin.)
Use Custom Chat Emoji and Emoticons
Both Slack and HipChat allow for the creation of custom emoticons for use in your account. If you notice the team sharing a joke or experience over chat, turn it into an emoticon. Later it can help you break up an otherwise tense chat.
Around holidays or other special occasions, gift exchanges are a great way to get the entire team together and having fun. Hold a team-wide Secret Santa, with the reveal over video chat. Or, to mix it up, try a White Elephant or Yankee swap.
Share Music and Food
Tunes and food are universal pleasures shared between friends all the time, so why not do it with your team? Both are areas where people can make connections and learn something new. With music, it’s easy to create a shared list on Spotify, or have team members rotate through the responsibility of making weekly music recommendations. Food’s a little harder for remote teams, but maintaining a recommended restaurant list in each team member’s hometown is a nice way to help each other out when traveling and common ground for lots of little interactions and chats.
Get the Team Together In-Person
It’s expensive, but the benefits are huge. With an all-hands retreat, everyone can really get to know one another, establishing a culture of trust and communication, and enjoy a series of small, human-to-human interactions. All of this carries right into day-to-day remote work when everyone disperses. For a prime example, read about Buffer’s thrice-yearly international retreats.
- Facilitate distractions - ultimately they form connections that build trust
- Play multiplayer video games
- Use custom emoji and emoticons
- Hold team-wide gift exchanges
- Share music and food recommendations amongst the team
- Consider getting together for an in-person, all-hands retreat
Part 5 of 5: Stay Current!
It’s critically important for you to keep up with the events and changes that are relevant to your project’s domain and the technologies you are working with. There’s no way you can hire or manage effectively by staying domain-agnostic, especially with remote software development teams.
Here are some simple ways techniques you can use to stay on top of things:
Follow SMEs and Influencers
Your space - both the domain your project serves and the technology stack within which you are working - will have influencers and subject matter experts. Let them invest the time sourcing and curating the content so you can focus on your team. Find them, follow them and take notice of the articles they post. Twitter and Medium are the best channels for this.
Save to a Reading List
You’ll certainly come across articles and newsletters that you’ll want to read all the way through, but won’t have time to at the moment. Pocket and Instapaper are the leading tools for solving this problem by providing a mechanism for “saving” items to read later and in most cases, offline. (Great for subway rides.)
Dedicate Time Every Day to Long-Form Reading
Set aside 30–60 minutes every day to read books or articles you’ve saved to your reading list. Be sure you’ve closed your email client, closed your chat client, turned your phone off and killed any other distractions so you can get through and absorb the material. A scheduled time on the calendar seems to work for most.
Podcasts have exploded as a medium for disseminating really interesting niche expertise. Look again for influencers and subject matter experts either hosting podcasts or being interviewed on them in your space. Often listening to them at 1.5x or 2x speed will get you the benefit of the content in substantially less time.
Email Rocks for Newsletters and Online Courses
Spam filters and unsubscribe mechanisms are rigorous enough these days to use email as a simple asynchronous way to consume newsletters and course content. Leverage your SME and influencer list to find the most interesting courses and newsletters.
Create a Shared Team Resource List
Your team members are likely SMEs to some extent in your space. Share your reading list with them or better yet keep a team list everyone can edit. It’s an easy way to stay current and connected with your team at the same time.
But There Is No Way I Can Get Through It All
Triage, prioritize and just let go what you don’t have time for is the only solution for this issue. Use the provenance and quality of the writing to figure this out - you’ll get increasingly better at it.
- You have to stay on top of your problem domain to manage effectively
- Follow influencers and subject matter experts
- Use a reading list mechanism
- Dedicate time every day to long-form reading
- Listen to podcasts in your space
- Subscribe to email newsletters and courses
- Create a shared team resource list
- Triage the material you gather
That’s a Wrap
That wraps up our guide for How to Manage a Remote Team. I hope you found it valuable and learned a thing or two.
If you’re interested in integrating context and transparency into your team culture by automating daily or weekly check-ins, be sure to check out our free trial.
Get a monthly digest of helpful articles from around the web for people leading software teams. Absolutely no spam, unsubscribe anytime, and we'll never share your address: