Some engineering teams have been operating remotely for years. With the pandemic situation forcing software teams to adopt a distributed & remote working model, it’s a good idea to revisit some of the key strategies of managing virtual engineering teams.
Sure, there are some fundamental practices such as standup meetings that help any team adjust to a remote work environment. However, engineering teams are something of a different breed. Because of the complexity of their processes, they require special practices to ensure alignment.
It’s a cliché, but we can’t stress this enough. Since going remote robs your team of the visual and emotional cues present when connecting in person, you’ll need to make sure that everyone gets the full picture at all times.
Establish practices on open communication, and especially of communicating all aspects of the product to relevant team members. During planning and requirements elicitation, don’t just focus on helping your team understand the requirements: also make sure they gain clarity around the context of all the decisions being made. Make sure there’s complete visibility around all development processes across the lifecycle. Over-communicate any and all changes your team will need to adapt to. Then double check if everyone got the news.
Stay sharply focused on what you’re delivering throughout the process of development, and make sure all team members share that clarity. Define goals accurately, write them down, and repeat them again and again. Be very clear when setting expectations and establishing a definition of done, so that your team is fully aligned and can work towards success.
Take extra care to trace all items downstream as the product’s development progresses. Aim for gapless traceability, and analyze coverage. Link not only development artifacts, but tie them in with the business side of things for everyone to understand the 'whys' and 'hows'. Do your best to limit the inevitable friction of distributed work.
In a remote environment, trust is a vital factor. Empower your team members to make their own decisions – but also make sure all those decisions are well documented as soon as they are made! That’s the only way you’ll be able to keep everyone in the loop.
For decisions that impact the work of multiple team members, you’ll want to set up meetings to make sure everyone’s up to speed. Set a clear agenda for these quick calls, and stay focused during those calls. Then make sure the decisions and their impact are documented in writing and accessible for everyone. Have other matters to discuss? Set up another call.
Naturally, there are cases where the approval of team leads or other key people is necessary. In those situations, make sure the team members in charge are reactive and respond to comments and questions ASAP. Waiting for the green light can really hold up work, and can create unnecessary frustration in your team.
Most teams that meet together regularly IRL develop certain habits over time. For instance, some teams like to sit in a little early for weekly stand-ups to just check in with each other for some informal chit-chat. Others congregate around the coffee machine after daily stand-ups for an informal followup: set up a chat room to emulate that experience.
Encourage these practices as you transition to remote work, even if it feels strange at first. Do anything that helps your team stay in touch. The same stands for any formal, work-related rituals you had developed before switching to remote. Don’t have a ritual but feel the need for one? Now’s the time to implement new ideas. Form productive habits to help your team perform.
Provide the right tooling
If your team can sit around a table and talk, you may not feel the need for a ton of tools. A whiteboard for post-it notes for tasks does the job marvellously. Once you’re forced to go virtual, all those blog posts about software platforms suddenly make a lot of sense. You can’t expect your team to perform well in a new environment if you don’t give them the collaboration and development tools that help them get there. Map your team’s needs, and update your infrastructure accordingly.