Great Remote Teams Great Remote Teams

Updated: January 2024

I was asked this question in an interview recently:

Describe your strategies for maintaining a high performance, geographically distributed development team.

TL;DR: In a remote world, there needs to be more focus on maintaining crystal clear communication around work and doing everything possible to foster personal connections, which are often the hardest things to do.

I love the nuance and uniqueness of high-performing teams. Every team is different, but certain things are consistently important to these groups. The joy in deciphering this puzzle is why I’m a manager. My strategy for building a high-performing team centers on fostering a sense of purpose, promoting mastery in their craft, and providing autonomy, which stems from an informed understanding of their situation. This was a feeling I’d had about successful teams’ makeup, and it was put into words for me by Daniel Pink.

With that as my core vision for the team, the next step is strategizing how to realize it.

I believe it’s crucial to ensure that the team grasps its engineering values and philosophies. Having clear code review guidelines, performance/testing measures, team book clubs, etc., can facilitate such understanding. The team needs to approach engineering as a craft and not merely as something that needs to be delivered. This mindset ensures that growth and mastery as engineers stays at the forefront throughout the year.

Once we’ve ensured that we won’t get stuck on the execution of tasks, we can focus on what we’re building. Celebrating progress towards things that matter to the team and the business is critical here. This celebration happens by keeping a close eye on the team’s work, making recognition feel authentic to the developers. Reading all PRs, crafting personal dashboards to track the team’s work, understanding the business and our key metrics, knowing the team as individuals and what matters to them personally allows me to truly connect them to the purpose of the work.

Now that they’re clear on how to work and why we’re working, they’ve earned the trust needed to become a collaborative part of the building process, often resulting in the autonomy to decide what needs to be done. This isn’t granted lightly! Several teams have been shipwrecked by endowing engineers with too much freedom too soon. However, successful ones yield key contributions from everyone. And that’s what we’re striving to achieve.

With that as the core high-performing team strategy, the trick when being fully remote and distributed is to focus on the elements you lose: immediacy of communication and interpersonal connection. It’s not easy to double-check something or ask a question when it might take a full workday to get a response. Defining standards for tickets, projects, and success metrics, as well as clear roles on the team, ensure that team members can answer their own questions or know where to go when they need help.

The other thing remote work takes away is a personal connection to coworkers. “Ok, that’s fine.” in a Slack message could be fraught with misinterpretation. So, to counter this, the team must have opportunities to share their lives (at a work-appropriate level) with each other. Things like starting meetings with breakout rooms for friendly debriefs, playing small asynchronous games with each other (e.g., Quordle battles), or sharing virtual experiences all contribute to a remote team that trusts each other.