Building outstanding and high-performing teams is the dream of every engineering leader. But how do you do it? And how do you do it when people work remotely, and getting everybody to the same place is difficult and costly?
Many believe we need to meet in person to build great teams. I beg to differ.
In the past, I was part of many great teams building themselves remotely, sometimes without meeting in person for years (thanks, COVID-19). Furthermore, I have seen many outstanding teams form without the need to meet in person.
- What did those teams do differently?
- How did they establish those strong bonds without meeting in person?
- How did they build trust and belonging from a distance?
The answer is clear, yet often overlooked by many teams. Despite its simplicity, most leaders ignore the practices that transform groups of people into high-performing teams.
The answer: Collaboration.
Collaboration is the answer
When people come together for team-building activities, they usually do precisely this. They
- go on a scavenger hunt,
- solve an escape room quest together,
- embarque on a canoe tour, or
- do something else that requires working closer together than through asynchronous pull requests (hint, PRs ≠ collaboration, hint).
These activities are fun, so go for it! I also enjoyed doing them with my teams. They aren’t needed to make a great team, but great teams often like hanging out together outside work.
Real team-building happened earlier. It didn’t need everyone in the same place or a fun off-site event. It just required working together as a team.
What makes a team great is working together. And by working together, I mean spending synchronous time solving problems. This can mean
- understanding a complex customer issue and finding out what a solution could look like.
- implementing a solution in team programming sessions together.
- investigating and resolving an incident on a call.
- discussing the purpose and goals of the team and how they support the company mission.
It does not mean
- assigning tickets to each other.
- ping-pong of asynchronous messages and pull requests.
- letting others suffer through incidents alone.
- big-upfront planning and guessing the future to work alone again, finally.
You get it. Real-time collaboration on meaningful tasks is key to building a team. Especially when it allows personal connections. From my experience, collaboration naturally creates space for such interactions. Because:
- the team is waiting for a build and uses the time to talk about personal stuff,
- somebody steps out to grab a glass of water, while the others use that time to chat,
- sessions are started with a check-in,
There are many small and not-so-small moments for personal connection on teams that collaborate a lot.
What it needs
For a high-performing team to form, it needs three major things:
- A common goal
- The desire to achieve great things together
- Synchronous time for actual collaboration
Let’s dive into these.
1. A common goal
It will be tough for a team to collaborate and work together if it has conflicting goals and priorities. Having clarity about what needs to be achieved, why it is essential, and in which order helps everybody to focus on the common goal.
2. The desire to achieve great things together
Team members should want to work together. They should be eager to be on the team, talk with teammates, and find good ways to make software together. United by a common goal, they understand that together, they achieve more than alone.
3. Synchronous time for actual collaboration
Someone once asked me about building a high-performing team with non-overlapping work hours. It’s tough. Such a team can only fine-tune their asynchronous communication. Generally, they must reduce communication needs or accept delays of half a day or more in responses.
The reality: High performance has a different meaning for such teams. Team performance hinges on communication efficiency and effectiveness. More time together eases bonding and achieving great things. This truth may irk many, especially asynchronous teams, but it’s undeniable. Optimizing performance in a fully asynchronous team is possible, yet it faces limits unseen in teams with collaborative time. How to optimize collaboration without time overlap is a topic for another post.
A team, not working together, is a community at best, most likely more a self-help group or an organizational grouping of people doing similar things at worst. – So much wasted potential here!
To build high-performing teams, prioritize collaboration over traditional team-building activities. This is even more essential in remote settings.
- Genuine Collaboration: Effective teamwork doesn’t necessarily stem from in-person interactions or orchestrated team-building events but from meaningful, synchronous collaboration on projects and problems.
- Common Goal: A clear, shared goal is crucial for keeping the team aligned and focused.
- Desire to Achieve Together: Team members should be willing to interact and work together towards achieving common objectives.
- Working Hour Overlap: Overlapping working hours enable real-time collaboration, which is essential for building a cohesive, high-performing team.
Essentially, creating a high-performing remote team is possible by promoting a collaborative culture, sharing a common goal, and providing opportunities for real-time work together.
Agree or disagree? How do you build high-performing teams? Share your thoughts in the comments!