January 28, 2021
Managing Distributed Software Teams in the Age of Covid-19
Like most of the working world, the COVID-19 outbreak has pushed software engineers and developers, who traditionally work in an office setting, into the remote workforce.
Leading distributed teams requires much more effort—at least initially—than managing teams in-person.
However, with the right collaboration tools and some adjustments to existing processes and norms, teams can maintain and even improve productivity, quality, and job satisfaction.
Unique Challenges for Remote Software Engineers and Developers
Unlike other types of knowledge workers (think marketers, sales reps, writers, designers, customer success teams, etc.) who perform most work independently and meet with colleagues when there’s something specific to discuss, software developers typically work as a team and actively collaborate throughout the workday.
That difference means leaders must put in the effort to preserve the team’s close-knit, collaborative culture. After all, how well a team works together has a direct impact on their ability to deliver high-quality outcomes to consumers.
In a recent Forbes article, the author pointed out a few critical factors that can become vulnerable when development abruptly goes remote:
- Social cohesion. Social cohesion is a term that describes “business friendliness” or that sense of comfort and camaraderie between colleagues. Working in the same space allows employees to naturally forge bonds while grabbing a coffee or bumping into each other in the hallway. Over time, these interactions lay the groundwork for an emotionally supportive work environment, knowledge sharing, and the ability to address tension or have more “difficult conversations.”Essentially social cohesion acts as a sort of lubricant for effective collaboration, even when things get tough.
Unfortunately, when work happens remotely, social cohesion is harder to achieve. With spontaneous interactions off the table, teams must rely on virtual alternatives like Slack channels, video conferencing, and collaboration platforms to keep the connection alive.
- Perceived supervisory support. People with a supportive supervisor tend to be more willing to share ideas and energy with the larger group. Feeling supported creates a sense of psychological safety that, in turn, gets people to let their guard down and open up to colleagues.What’s more, the article also points out that people often see their relationship with their direct supervisor as a sort of proxy for their relationship with the organization. Put differently, a weak relationship with their supervisor weakens the relationship between an employee and their employer.
As such, managers leading distributed teams need to make sure that they make themselves visible and available to their team. Make a point of holding regular 1:1s, team-building exercises, and providing plenty of times/communication channels for getting in touch.
- Clarity around vision and goals. Another area that can suffer when work goes remote is clarity around the project/company vision and goals. As a manager, part of your job is keeping the team aligned around the same goals and accountable for their role in helping the organization hit critical milestones. With remote work, it becomes more difficult to ensure that team members are focused on the right activities. Being remote, you can’t just walk around and look over their shoulders anymore; the virtual equivalent can easily turn into an exhausting, toxic form of micromanagement.
- External communication. External communication describes the process of looking outside of a team, department, or organization for ideas/new knowledge that challenge conventional ways of thinking.
In some ways, working remotely makes it easier to generate out-of-the-box solutions and new ways of seeing the world. That said, it’s worth noting that the discovery process often becomes an individual journey, and it’s harder to disseminate new knowledge to the rest of the team.
- Trust. Unsurprisingly, trust plays a crucial role in cultivating positive relationships among remote software developer teams. There’s emotional trust, which provides the sense that teammates and managers are there to support. This plays an important role in getting people to open up and share information with each other, admit mistakes, or ask for help.There’s also trust in the team’s/manager’s/organization’s competence. People need to know what they’re doing and that the information they share is accurate and reliable.
One of the big challenges that comes with managing remote teams is that it can take longer to build trust with colleagues you don’t see each other every day.
While any organization might struggle to maintain these factors in a distributed environment, the article emphasized that, for software teams, failing to maintain these structures opens the door to several risks. These risks include a lack of visibility, poor communication, an erosion of trust, and the feeling of lack of emotional support.
Combined, it can have a negative impact on code quality. Ultimately, it can hinder the ability to deliver projects on time and per project specifications.
Update Your Leadership Style
Client respondents reported that the pandemic prompted them to take the following actions:
- Enter new markets—42%
- Change technologies—38%
- Eliminate or postpone products—36%
- Introduce new products—35%
- Accelerate the pace of development—30%
- Decrease the pace of development—30%
- Exit markets—17%
That’s a lot of change in a short amount of time. To pull it off, business leaders may also need to rethink how they implement change, stay on track, and measure results.
While successful software leaders already measure performance based on outcomes or business value, some managers may still be hanging on to old biases about what productivity should look like—and, as a result—become a virtual micromanager.
Successful distributed teams are built on trust, buy-in, and a shared set of goals. Work together to establish expectations and define a new set of metrics to measure team performance based on the work they submit.
Make an effort to ask the team questions about any blockers they’re experiencing or what you can do to help them work more efficiently in the face of new challenges and changing requirements.
3Pillar’s Abel Gonzalez Garcia shares an example from his own recent experience. He says, “one of my team’s biggest challenges during the transition to remote work was figuring out how to split the time/workload between the different devices (OTT devices) we use to complete day-to-day tasks. The solution was to create small sub-teams, each charged with managing a specific platform and device. Thus far, this approach is still working and has enabled us to deliver good results.”
Additionally, make some changes to how you engage and empower your team. This means making an effort to put in face time through virtual daily standups, regular 1:1s, and even virtual team-building activities, celebrations, and casual socializing. Combined, these elements come together to help you preserve your internal culture, despite the distance.
Establish a Framework and Best Practices for Collaboration
Managing remote software engineers often means that you’ll need to get comfortable with doing things differently than when going to the office was a daily routine.
Moving to a new work environment and embracing the tools that come with the territory means you should probably rethink existing team norms and develop new ones better suited to your current situation.
Coordinating information flows across the distributed workforce is an essential step toward preventing silos that block development teams from sharing knowledge and accessing critical resources.
Collaboration tools like video conferencing, chat, virtual whiteboards, and visual management tools may require some new ground rules for how they should be used.
Software Engineer Paul Estrada says that his team has been using many of the same tools they were using before, including Slack, JIRA, Google Docs, Team WebEx, email.
3Pillar’s Octavio Islas Frias adds that “developers should have a strong internet connection and add a BackUp UPS for computers and modems. You’ll also want to make sure to respect work hours, both from the customer and the engineer side.”
Essentially, while you may be able to continue using the tools you’ve been using all along, it’s important to get clear on new boundaries/norms for how those tools fit into the new environment.
Paul predicts that “the biggest challenge going remote besides keeping communication flowing will be onboarding new team members to a project. No matter what, new members require extra attention to help ensure they’re set up to succeed.
Even if remote software developers are experienced, things like knowledge transfer and access to senior team members who can help them be more productive and not feel so isolated as they work through their first tasks may be more difficult to handle remotely.
He adds that “meetings, calls, demos, and pair-programming can greatly help new members to learn quickly how a project works. While processes are the same, I’ve found that technical documentation for architecture decisions are becoming more important for enabling asynchronous discussion between team members and are a valuable resource for new members.”
Agile for the Remote Workplace
As organizations continue to grapple with the changes brought on by the COVID crisis, Agile development teams are often a competitive advantage. After all, they’re used to quick decision-making, responding to changing circumstances on-the-fly, and adapting to new needs and shifting priorities.
Unfortunately, the rapid shift to remote work has made it difficult to manage remote Agile teams. Traditionally, Agile methodologies work best when everyone is working out of the same location.
Here are a few tips for updating your Agile practice for your remote development team:
- Daily scrum. When work goes remote, daily standups can lose their structure. Make an effort to prioritize daily meetings. Use video to keep teams focused and engaged. Additionally, focus on planning/progress reports during the first half of the meeting and problem-solving during the second half.
- Update your approach to sprint planning. Here, the goal is to agree on a set of objectives and divvy up the work before kicking off the sprint. However, with remote teams, decentralization can make it much harder to have dynamic conversations about project priorities. Make things easier by encouraging team members to do some prep work ahead of the meeting. Additionally, set some ground rules that define what can (and should) be done independently.
- Prioritize work that requires less collaboration. Remote development teams may find it easier to focus on knocking out more technical tasks rather than focusing on those requiring close collaboration with the client and other stakeholders. While this might not be possible for your team all of the time, now might be a good time to address business needs/improvements that don’t require tightly coordinated discussions with multiple testers, product owners, and end-users.
- Backlog management. Managing and updating your backlog can also be hard to handle in a remote environment. After all, complex problem-solving in a large group is hard enough to pull off in person. Get ahead of these issues by making sure that everyone has access to digital white-boarding and collaboration tools and that all information is documented in real-time. These steps make it easier for team members to follow along or reference later. You might also try hosting smaller meetings with team members who work closely with one another and then share progress with the larger group later.
- Sprint reviews and retrospectives. Celebrating wins, capturing feedback, reflecting on lessons learned are an important part of Agile. Make sure that you incorporate video to maintain the face-to-face element of in-person meetings and consider introducing videos of customer reviews/interviews. Additionally, provide an opportunity for team members to share feedback anonymously so that workers feel safe sharing honest feedback during the retrospective stage.