You are here

You are here

Virtual software development teams: 4 challenges to overcome

public://pictures/johncarter.jpg
John Carter Founder, TCGen Inc.
 

The current public health crisis with COVID-19 has sent millions of software developers home. Software development teams that used to meet for daily standup meetings in conference rooms now find they have been transformed into virtual teams overnight.

In many companies, having teams distributed globally and working virtually is business as usual. Other dev teams are facing the challenges of adapting suddenly to a new work environment.

Research and experience have shown that virtual teams in software development face four major hurdles. Here they are, explained—along with solutions to help overcome them.

Maintaining the company culture

Company culture is an immersive experience. It's something we take for granted. Generally, experience tells us what the culture will bear in terms of relationships to family, patterns of accountability, the ratio of work to play allowed in the workspace, etc.

Culture creates cohesion, impacts motivation, and regulates behaviors within an organization. Company culture also enables all contributors to interpret senior management dictates.

When people work from home, these familiar signposts begin to break down. It's sometimes difficult, in a vacuum, to interpret management communications that appear quietly in the email inbox. Absent the omnipresence of the company culture, it becomes more difficult for team members to know how to interpret communications that come from afar.

How to maintain culture

Periodic meetings where senior managers from outside the team communicate directly with the dev team, using tools such as Zoom, help mitigate the risks to company culture when teams go virtual. They also give managers an opportunity to update the strategy.

Ideally these would be skip-level meetings where you, as a manager, meet one-on-one with the direct report of another manager, who in turn reports to you.

It also helps teams to have a strategy document, stored in the cloud, that is a single version of the truth. The strategy should be periodically updated and stored where it is accessible to the team. It should be reviewed (briefly) before each road map meeting and cited during company all-hands meetings.

The COVID-19 crisis discourages retreats or strategy workshops where everyone is invited. Although virtual retreats are difficult to pull off well, various organizations have tried them with success. They often mix in recreational activities along with sessions on culture and training on new systems.

Make the unconscious cues in the company culture conscious. Refer to them often and reinforce them. Company culture can follow your team members home, but only if it is made explicit and constantly reinforced.

Above all, calling out company culture at every opportunity helps enormously. Each and every corporate communication (announcements for new hires, departures, and reorganizations) provides great opportunities for reinforcing culture.

Tools for maintaining culture include in-house wikis, Google Docs, and twice-yearly retreats (including virtual).

Keeping focused on the product vision

The problem with losing track of the product vision is that the software dev team will lose cycles as it addresses the wrong problems. The greatest danger is time wasted in nonproductive work that does not tie to the product vision.

In the worst-case scenario, a team that loses sight of the product vision can deliver the wrong solution at the end of a long and expensive dev cycle.

How to maintain focus 

Hold monthly road map reviews, where alignment with the product vision and the app under development is discussed and updated. Look over the product road map and release trains, assess where you've been, where you’re planning to go, and what the next steps should be.

Again, having a simple, one-page product vision—representing a single, shared version of the truth—helps.

Another solution is to use boundary conditions, a tool of exception management. In this methodology, the dev team and upper management agree on the minimum viable product (MVP). They then break it down to three to five parameters of the project—such as project cost, product cost, features, timing, and quality—and define quantitative metrics for each of these parameters.

Then the dev team does its work without interference from upper management, as long as it looks as if it will hit its quantitative targets.

If the project begins to go off course, then a lightweight escalation process kicks in that helps the team get back on track. Having clear parameters to work toward helps keep the team focused, ultimately, on the original product vision.

Another way to face the challenge of losing track of the vision is to appoint a proxy product owner/product manager on your dev team. This person should work in the same time zone as the majority of the team, be empowered to answer questions as they arise, and shepherd the software project toward its goals.

Tools for managing the product vision include wikis, Google Docs, road maps, and others.

Staying true to agile methodologies

How can teams maintain the integrity and power of agile methodology when the members are physically separate? Most of the principles of agile imply a collocated team. For example, from the Agile Manifesto: "The most efficient and effective method of conveying information to and within a development team is face-to-face conversation." 

This can happen over videoconferencing, of course, but the authors certainly intended "face-to-face" to mean in person. 

How to maximize remote agile teams

Thankfully, some of the elements of the Agile Manifesto can more easily apply to virtual teams. For example, principles of agile such as "continuous attention to technical excellence and good design enhances agility" also apply to virtual software teams.

As teams become virtual, make sure that you have defined and put in place a minimal set of required agile events. One definition of an agile event: The meetings prescribed to carry out the Scrum framework, which give Scrum its regularity and structure. Choose the vital few, or risk spending all your time on process, rather than on real work.

Remote agile is an area where technology helps. Essential agile tools include backlog, definition of "done," burndown chart, release plan, and retrospectives. And each of these has an app that can help.

The most important aspect of staying agile in virtual teams is to keep the roles of the Scrum master (SM) and product owner (PO). And you should have SM and PO proxies for each group of team members who share a common time zone. 

Their role is to stop and answer questions within an hour that might hang up a developer for a day. For bigger issues, the proxies can reach back to the true product owner for confirmation of the direction given locally. The proxies have a fast track to the primary PO and SM and can get a same-day (or 24-hour) response.

Managing for collaboration day in and day out

Working beside other people in a collocated environment has many advantages in terms of communication. For example, when one team member is on the phone, perhaps speaking to an internal or external customer, team members located nearby can hear one-half of the phone conversation and intuit the rest.

Information conveyed in this ambient manner is important, and it is almost impossible to replicate in a virtual team environment.

How to manage collaboration

One commonly used countermeasure is finding a virtual replacement for real-life bonding, like sharing personal weekend plans or even a virtual happy hour. But virtual teams can take several steps to ensure that they keep collaborating effectively even on lockdown.

First, make it clear, through a release planning document and through boundary conditions, what it is you're collaborating on. At the beginning of a project, make sure that you have defined roles and responsibilities. Now is not the time for team members to have only a vague idea about who is the directly responsible individual for a given deliverable. The Circle Dot Chart is a tool that can help teams define and maintain roles and responsibilities as they work virtually.

You can also create transparency for teamwork by having a shared workspace, and sharing interim work products in a cloud-based environment.

Above all, have version control protocols and observe them. Version control for all documents and work product is especially vital where teams are not located in the same time zone.

All team members must not only have a single version of the truth, but also know that it is the most current version, the latest and greatest version of your work. Managing the permissions in your tools is important. Make one individual responsible for the document and allow only that person to edit it.

Tools for collaboration include the SPADE decision-making framework and Fellow.app, which has both free and pro versions.

Hire and communicate for virtual team success

In addition to meeting these four challenges, virtual teams raise questions related to hiring and communication. Hiring remote developers is difficult given the time-zone and language challenges. Specialized hiring firms can serve as resources to help you recruit and select candidates when trying to scale rapidly. 

Don't forget onboarding. It is one thing to bring in a new hire into headquarters, but entirely different to bring someone into the organization who will not see the company office for six months or longer. Document your onboarding process and have videos that can be watched locally.

You also need to prepare new hires for work. There are scripts that can configure a laptop for instant productivity with tools preloaded for code repositories, development environments, and links to company resources.

With virtual software teams, communication and decision making are often difficult challenges. For example, daily stand-up meetings are nearly impossible if conducted as if the team were located in the same building. Time-zone optimization is one tool that organizations use.

They try to formulate teams so that at least four hours are in common between core team members. If you can't get everyone together for a standup, some firms perform asynchronous check-ins using Slack. Other firms have used Basecamp for standups as well. 

Unprecedented times call for unprecedented measures. It's imperative to the strategies of many companies that they do not lose steam due to events outside of their control.

With some thought and innovation, virtual development teams can maintain the best principles of their company cultures, stay focused on their product vision, stay true to agile, and collaborate effectively. The keys are clarity, process, and the appropriate technology. With these in place, virtual teams can forge ahead, without missing a step.

Keep learning