Many knowledge workers, including engineers, want to retain flexible working options as part of the post-pandemic future of work. In a recent report of 1100 engineers, nearly ⅓ of respondents said they wanted to work remotely full-time after the pandemic. Another 70% want to work remotely most or some of the time.
So, we can flip the switch and work as distributed software engineering teams seamlessly without making any other significant changes, right? Not so fast! Supporting distributed engineering teams effectively and successfully requires some work. But don’t worry, we’ve got you covered. Read on to learn eight best practices for leading distributed engineering teams that you can start applying today.
1. Develop an onboarding process for distributed teams
Onboarding engineers can be time-consuming and potentially challenging in a distributed working model. Employers need to introduce new team members to new systems, workflows, development practices, and company policies and procedures — often all at once. Former Director of Engineering at Greenhouse, Aaron Gibralter, outlined how Greenhouse onboards engineers, noting that “structured onboarding is the key to ramping up new engineers in a consistent and repeatable way.”
The team at Zapier shared their onboarding process for engineers in 2017, highlighting key activities that take place starting before a new hire’s first day through week four and beyond. Some of the key activities in their process include a personalized onboarding document, a lot of face-time with their new engineering manager, an overview of communication tools, shipping small projects to get hands-on, and digging into the dev environment.
You can decide how thoroughly you want to structure your onboarding process for remote workers, but the point is to establish and develop the strategy early on before you scale your team. Setting remote team members up for success requires building out processes and procedures that will help them hit the ground running. If you’re looking for inspiration, check out this onboarding checklist from Hibob or these best practices and tips from Arc.
2. Clearly define your engineering team structure
A clear team structure is necessary to create a strong distributed engineering team with individuals whose skill sets complement one another. You’ll also want to define your team structure early on so you can scale your engineering team accordingly over time.
There are three common structures for engineering teams:
1. Horizontal: Team members have defined roles, and all team members are equal and distribute responsibilities based on their workload and skill sets. In a horizontal team structure, there aren’t hierarchies of power, but rather teams performing essential tasks to get the job done.
2. Vertical: Teams structures follow a hierarchy with increasing levels of leadership and management as one works their way up the hierarchy. A vertical team structure offers increased supervision to support the team as they work toward shared goals. In this setup, roles and responsibilities tend to differ across roles compared to the horizontal structure.
3. Matrix: Some companies choose to use a matrix team structure when team members need to report to multiple leaders. This is a standard structure for teams who work on different projects (and sometimes clients) at different times. This structure allows teams to meet the demand of different needs of clients while ensuring alignment.
If you have a structure in place and are considering restructuring or refining it, these engineering leaders have restructured engineering teams and offer sound advice for success.
3. Establish and share out development best practices
Many project management methods are available, and most engineers will likely know how to use more than one of them. What won’t do the team any good is if team members are all trying to operate under different methodologies and following workflows that don’t work seamlessly together. That’s why engineering team managers need to establish and share accepted development best practices to ensure quality work, predictable outcomes, and successful collaboration.
The most common practices include:
- Agile: An interactive approach centered around people and interactions, working products, cooperation, and flexibility
- Scrum: A methodology within the Agile framework that allows small teams to achieve results quickly and prioritize tasks in a two-week timeframe
- Kanban: A methodology within the Agile framework that speeds up development and focuses on the quality of outcomes
- Waterfall: A framework for planning projects and executing them step-by-step
- Lean: A methodology rooted in efficiency and achieving more with less
Remember to customize your established best practices and methodologies to meet the needs of your team and organization, but be transparent with your processes and workflows.
4. Build a strong company culture and support it
A strong and positive company culture will hold your engineering teams together, even when times get tough. Company culture is arguably more critical for distributed development teams since they can’t mingle in an office space in person together.
In 2016, The U.S. Bureau of Labor Statistics predicted the job market would create nearly 140,000 engineering jobs by 2026. And according to CBS, many different types of engineers topped the list of best jobs in America in 2022. That means engineers are in-demand and have many job offers and employers to choose from, which is why your culture needs to stand out from the crowd.
Below are some tips for building a solid company and engineering team culture that your engineers will be able to get behind:
- Ensure your team values align with company goals and values. Your team values will speak to prospective engineering candidates and help them understand what they can look forward to if they choose to join your organization. Many companies have and preach values at the organization level, but adding a layer of values that are team-specific gives engineers a shared purpose.
- Encourage innovation and collaboration. There are many benefits of collaborating with teammates, including more innovative solutions, higher employee engagement, and learning through knowledge sharing. In turn, these will lead to a better, stronger engineering team. One recent survey suggested that just over 72% of software engineers look for new challenges and continuous learning in their environment, and innovation provides those.
- Coordinate informal social gatherings. Since face-to-face team bonding is rare or sometimes doesn’t happen at all in a distributed working model, it’s essential to find ways to incorporate social connections into the mix. In place of “water cooler” chatter or team lunches, ensure all engineering team members have time for informal virtual meetups.
Companies with well-known engineering cultures like Google, Amazon, and Netflix do these things to make their culture stand out.
5. Make good team dynamics a priority
Good team dynamics may sound simple on paper, but in reality, they’re a lot more complex to build and maintain. In 2012, Google launched Project Aristotle to study hundreds of their teams to understand what made some teams more successful than others. Researchers found that psychological safety, dependability, structure and clarity, meaning, and impact are the dynamics that make teams most effective — in that order. So, how do you create these within your team? Follow these tips:
- Build personal relationships. You don’t have to tell your co-workers about your personal business, but building relationships and getting to know one another can help build trust. Other ideas for building trust and strong work relationships include giving praise, being honest, and supporting team members when needed.
- Openly encourage mistakes and new ideas. The Center for Creative Leadership defines psychological safety at work as “A shared belief held by members of a team that others on the team will not embarrass, reject, or punish them for speaking up.” To build a psychologically safe space, make it a point to encourage and welcome mistakes, questions, new ideas, and feedback. Embrace productive and healthy debates around conversations and make it a priority. All members of the team deserve to have their voices heard.
- Practice self-awareness. Often, it’s easier for us to identify flaws in others than in ourselves, but it’s important to bring an equal amount of self-awareness to the table. If you give feedback to others, expect to receive it in return and be willing to make improvements.
6. Adapt to the art of asynchronous work
Distributed teams will likely be split amongst many time zones across the globe, and planning for asynchronous work ahead of time is essential. To be clear, remote work is not necessarily the same as asynchronous work in which team members may be working across different time zones. In an asynchronous environment, there may be little time for meetings during overlapping timeframes, quick and unplanned chats, and assistance at the ready. However, teams can plan and effectively manage asynchronous work by keeping the following in mind:
- Identify meeting times that work well for everyone and schedule far out as much as possible. Sure, the need for an ad-hoc meeting will come up here and there, but you should encourage your team to pre-schedule during timeframes that work for all members of the team. Whether engineers live and work in neighboring states or countries across the globe, team availability is a sacred time. A tool like Clockwise can help you identify the best times to schedule meetings.
- Develop a shared understanding of communication expectations. In a dispersed work environment, miscommunication, misunderstandings, and lack of clear expectations can lead to trouble. It’s important to help team members understand appropriate turnaround times for getting back to one another, especially in an asynchronous environment. Additionally, being as straightforward as possible and leveling up the team’s written communication skills can help set them up for long-term success and healthy partnerships. Keep cultural differences in mind when establishing expectations.
- Let team members know who to go to when they need help. Engineers often turn to each other for help when they get stuck on a problem. Establishing workflows and processes for getting assistance when stuck and knowing who to contact at certain times during the workday is critical. Additional best practices for Agile development include designating a leader, assigning ownership to every individual, and reviewing progress regularly.
7. Choose the right set of communication and collaboration tools
Implementing the proper communication and collaboration tools will enable your growing engineering team and allow them to overcome barriers. It’s easy for team members to lose track of information and conversations when there are too many daily tools to keep track of, so cut back as much as possible. Along with choosing your tools, it’s necessary to establish clear processes and guidelines for how engineers should use the tools and where they can expect to find specific information.
To ensure your communication channels are effective and support your remote employees, consider:
- Identifying a chat tool such as Slack or Microsoft Teams for everyone to use
- Selecting a video conferencing platform such as Zoom or Google Meet
- Setting standards around video calls (e.g., cameras on or off, proper meeting etiquette, etc.)
- Leveraging a project tracking tool like Jira
- Choosing a dedicated tool like Confluence to house valuable information for the team
- Providing a means for brainstorming and collaboration on projects like Miro
- Using a calendar assistant like Clockwise for effective workday planning
8. Implement effective meeting standards
Conducting meetings with globally distributed teams can be tricky, but the right processes in place can help you make the most of your team’s time. Engineers need time to do work, and wasting time in unproductive meetings can be a major buzzkill. Follow these best practices to make your meetings most successful for your engineering team:
- Establish a meeting structure and cadence. What framework does your engineering team follow? How can you structure your meetings to support that framework? Some teams follow an Agile project management structure, others use daily standups to check in on progress during sprints, and some teams might have their own customized framework altogether. Regardless of which system your team uses, planning and scheduling your meetings around it can help your teams stay connected and give them the Focus Time they need to do their best work. According to Arc, some of the common meeting cycles for remote engineering team meetings include Agile, daily standups, end of sprint retrospectives, one-on-ones with managers, and monthly project meetings with all stakeholders.
- Prepare agendas in advance. Most bad meetings start with the lack of an agenda and desired outcomes from the meeting. Research suggests that engineers spend 55% of their time in meetings or in small gaps between meetings that prevent them from doing deep work. Since that’s over half of their working time, it’s essential to always prepare meeting agendas in advance to avoid wasting any further time. Better yet, frequently reevaluate your engineering team’s meetings and cut back on unnecessary and unproductive meetings.
- Document follow-ups and decisions. Avoid misinterpretations and misunderstandings post-meeting by documenting discussions, decisions, and instructions clearly to distribute to the team. Written reference minimizes the amount of lost work and misunderstandings between co-workers.
Go forth and build a robust distributed team
Remote work is the way of the future. Building effective and successful distributed engineering teams comes with its challenges, but with the right tactics and strategies, your team will succeed. First, start by enhancing the onboarding experience, clarifying team structure, and establishing development best practices as a foundation. Then, weave in company culture and team dynamics to support your people. Finally, adapt to and use asynchronous work to your advantage, use communication and collaboration tools, and set effective meeting standards to ensure your engineers have enough time to do their work.
Read next: What is a time orchestration platform?