In The Future of Work, we explore how companies are transforming to stay competitive as global collaboration becomes vital. We will feature stories from both builders and leaders who manage these transformations to illustrate workplace trends and what’s coming next.
As COVID-19 continues to disrupt operations for businesses worldwide, product teams that do not normally have a work from home culture are being expected to adopt one — and fast.
While this change is hitting many organizations hard, establishing an effective remote working operation now can pay off big in the years to come. This is for a number of reasons, but not least because demand for software engineers has outstripped supply.
According to recent reports, there’s a shortfall of one million developers in the U.S. alone. This problem is expected to get worse before it gets better — according to the U.S. Bureau of Labor Statistics, there will be a shortage of 1.4 million software developers by 2021, and only 400,000 software developer graduates. This makes it near impossible to build a local product team comprised of experienced and capable developers.
A move toward global software development promises to help tackle this problem. With this approach, a global marketplace is opened up, enabling companies to access niche talent. Developers can be sourced from less competitive markets and projects can be worked on around the clock.
But success doesn’t come without some compromises. Collaborating across time zones, and without fact-to-face contact, requires a well-thought-out strategy.
Below are six top tips to enable your product team to collaborate when they are geographically distributed.
#1: Communicate regularly
While it’s difficult to fully replicate agile methodologies with distributed teams, lessons in communication can be gleaned from the approach.
Upile Chasowa, chief technology officer at UK-based remote working support company Workclub, has built a completely remote team. He swears by daily standups over Google Hangouts to effectively manage workflow. Team members are then expected to connect throughout the day.
Since remote teams don’t have natural opportunities to bond over lunch or after work, as a leader you have to actively create ways for members to inspire, connect and motivate each other.Upile Chasowa, CTO, Workclub
“Since remote teams don’t have natural opportunities to bond over lunch or after work, as a leader you have to actively create ways for members to inspire, connect and motivate each other,” he said. “Complement traditional emails and messaging apps such as WhatsApp and Slack with regular video conferences so team members can see each other. Live meetings help relationships not only start well, but to nurture and grow over time. These connection points make all the difference and we actually see an increase in the productivity and general well-being of the team.”
#2: Make workload responsibilities and expectations clear
The more complicated a software project is, the more likely it is for various team members to interpret some of its requirements differently. Therefore, deliverables need to be made very clear, along with the time given to achieve each objective. Acceptance criteria and quality standards need to be established at the beginning of the process and should be shared among all members of the team to avoid issues later.
Creating clear project guidelines for productivity, teamwork, and accountability is very important.Upile Chasowa, CTO, Workclub
“Creating clear project guidelines for productivity, teamwork, and accountability is very important to me,” said Chasowa. “All business functionalities need to be clearly defined. Running weekly sprint planning sessions with project teams to clearly present tasks and their impact on the business is absolutely key.”
It is also worth considering making each engineer self-sufficient in developing a single piece of technology, which minimizes the amount of collaboration required with teams in other time zones and makes them generally autonomous.
“It’s wise to break development down into iterations and also define a continuous integration/continuous delivery (CI/CD) pipeline process, to ensure that code is easily stored, automated and accessible in one place,” Chasowa said.
#3: Share processes
Standardizing the development environment and core processes will not only increase the likelihood of success, but also minimize the loss of intellectual property and outsider threats. Chasowa said that success with this depends on using the right tools.
“Real-time multiplayer web-based tools are the way forward,” he said. “You can bring everything from documentation, notes, product ideas, research insights, project trackers, and much more all into one place. No more exporting, syncing, or redoing work, and even less time keeping track of what’s where. Because they are web-based, you can work on any device. If your laptop falls out of your hand or gets corrupted right before a deadline then it’s no problem, you can just sign in on any computer and all your work will be there. What’s more, you can always see what everyone is doing. You can follow along while someone else works. Being transparent and clear on product features and goals allows remote engineers to share their inputs, and collaboration tools bring that to the next level.”
Product testing should also be a part of the process. This can be time-consuming, but it’s an important step to identify bugs resulting from poor data quality assurance or development practice. Get this wrong and it can have a massive impact on how quickly a product can or should be released. Code reviews are key and should be carried out by an independent engineer, not the actual assigned or lead engineer.
If a team spans the globe, it is important to adjust working hours in a way that is fair to everyone.
“One practice we have found useful is to share the pain and compromise,” said Darja Šmite, professor of software engineering at the Blekinge Institute of Technology in Sweden. “This is the case for teams spread across large distances. For small distances, it is useful to have a common schedule, for example, for one side to shift by 2-3 hours. It’s also worth considering shifting lunch breaks to maximize the overlap.”
Whatever is agreed on, it’s important to maintain regular work hours to avoid burnout.
“In an office, it’s easier for team members to know when it’s time to go home,” said Chasowa. “But when you’re working remotely, there’s no way to tell when the right time is to sign off. Work or lunch hours can easily turn into leisure time, and team members find themselves working late into the evening. Try to prevent this from happening.”
#5: Minimize cultural and language challenges
Having product teams spanning different cultures can be problematic. Different cultures have different preferred leadership styles and decision-making processes, different perceptions of authorities and attitude towards time, as well as different needs for formalization, preferred communication and interaction styles, business etiquette, and motivation tools.
Increasing cultural awareness within teams is absolutely crucial to avoiding potential conflict.Erran Carmel, IT professor, American University
“The main thing is for teams to become aware of the cultural differences, and find ways to bridge them,” said Šmite. “We recommend that companies and distributed teams run cross-cultural communication courses to discuss the values that should govern behavior. We encourage offshore members to be more direct, to encourage suggestions for better ways of working and to avoid criticizing ideas.”
Erran Carmel, professor of IT at American University in Washington D.C, agrees with Šmite. “Increasing cultural awareness within teams is absolutely crucial to avoiding potential conflict. By harnessing differences, team spirit can be improved,” he said.
Reassuringly, research shows that with the right approach, cultural barriers can be broken down. “My empirical findings from studying the behavior of offshore members from five mixed DevOps teams suggest that behavior does change over time, even when integrating offshore engineers who are used to radically different hierarchical organizational culture into agile ways of working,” said Šmite.
#6: Be flexible
According to Daria Lamb, ambassador to the future at the Institute for the Future in California, it’s never been more important for organizations to recognize that work communities are becoming redefined. What has worked in the past in traditional operating environments won’t necessarily work in the future.
“While we all are working more in distributed and remote environments, our networks of collaborators will shape-shift often,” she said. “You’ll see pop-up teams that come together to accomplish something and then, perhaps just as quickly, dissolve as the participants join other groups. It’s important for developers to understand their strengths and working styles and be able to verbalize them to create good working relationships and avoid missteps and wasted time with their product team.”
It’s also important to find new ways to seek out specialist knowledge. Šmite’s work on communities of practices in large multinational organizations suggests that, to work effectively, engineers might need knowledge that is not available within a product team.
“This is especially true in highly cross-functional teams,” she said. “In such situations, public Slack or StackOverflow channels and regular video-meetings for peers doing similar work is of high importance. When organizations cultivate the culture of helping each other, developers can get an answer to a question within minutes from colleagues they have never met before.”
Putting it into practice
While geographically distributed teams come with a number of challenges, putting in place a best practice approach can help ensure success. Paying attention to the six points above will put you on the right path. However, Chasowa said there is one final thing to remember:
Know your team, learn about them, figure out what makes them laugh, what makes them tick, and pay attention to every concern they have.Upile Chasowa, CTO, Workclub
“If there’s one piece of advice I’d give to organizations looking to move to global software development, it’s to remember that remote teams are made up of real people,” he said. “These people require the same level of attention as any other employee. Ultimately, my secret ingredient to building a killer remote team is to get to know your team, learn about them, figure out what makes them laugh, what makes them tick, and pay attention to every concern they have. Suddenly, Jay, the React Native-app developer is now Jay, the React Native guru, who loves to play chess every Friday and enjoys eating lots of oranges — which just happen to be my favorite fruit too!”
Lindsay James is a journalist and copywriter with over 20 years’ experience writing for enterprise business audiences. She has had the privilege of creating all sorts of copy for some of the world’s biggest companies and is a regular contributor to The Record, Compass, and IT Pro.