AVIO Consulting

Challenges of Managing Remote Development Teams – Part 2

Oct 28, 2019 | Uncategorized

This article is the second in a two-part series that explores the problems and solutions I’ve found in managing a globally distributed project team.  Over the past 20 years, I have managed project teams that spanned the globe and others that were all located in the same office.  While the challenges with both types of teams are similar, the issues with teams that are spread out, sometimes across many time zones, many languages and many cultures, can be harder to overcome.

In the first part of this series, I explored how team members need to be sensitive to language and cultural differences and discussed ways to keep communication within a team flowing smoothly: Overcoming the Challenges of Managing a Geographically Distributed Development Team – Part 1: Improving Communication

Part 2 of this series explores how geographically distributed teams face various issues that leaders must constantly monitor in order to keep teams balanced to ensure that everyone’s voice is heard, regardless of where they’re located or what accent that voice comes in.  While coordinating any team is a never easy, distributed teams face additional coordination issues due to factors like time zones, culture and language.  


Time Zones

Communicating requirements is always more challenging when working with someone 12 time zones away.  That conference call to review new requirements is usually extremely early for one person and extremely late for someone else.  Large time differences also make quick questions or IMs more difficult because the other person is frequently unavailable.  If not managed properly this can easily lead to feelings of isolation, confusion, and frustration.

When I have a team member who is in a very different region or time zone, I will sometimes give that person tasks that require less collaboration when possible.  

I’ve found that it’s also important that at least some working hours overlap for all team members.  I don’t think it’s necessary to have hours completely overlap, but a daily 2-3 hour overlap has proven important in my experience.




The Personal Touch

Hopefully, everyone has at least one mentor during the course of their career to help guide them.  Luckily for me, early in my career, I had 2 excellent mentors who both taught me how important it is for leaders to establish a personal connection with their team members.  People are not machines and yet, unfortunately, some leaders fail to understand this.  They see their teams as cogs in an engine that will propel them to their next promotion.  That doesn’t inspire anybody.  

Real leaders must take the time to know their team members on a personal basis.  I’ve found that simple questions like “did you do anything fun this weekend” can open the door to conversations that help to understand factors which may be impacting people in their day-to-day job.  For instance, if you know that someone is the sole caretaker for an elderly parent that will help a manager to understand when that person needs to leave on short notice.  It doesn’t mean the person is lazy, but that they have other responsibilities outside of work – like in this example if that worker’s elderly parent has a sudden health issue.  

I’ve found that managing empathy encourages far more loyalty and ultimately long-term productivity than managing by fear.  We’ve all known leaders who everyone is terrified of.  It’s true that when they start shouting that people rush to satisfy them so they can escape their wrath.  However, those same workers will never go above and beyond for a leader like that.  Why would they when they know that their leader doesn’t care about them and only sees them as a tool to get ahead?    

I always try to use the first few minutes of every meeting to engage in small talk.  This is a great way for a distributed team to get to know each other on a personal level.  It can also help to defuse potentially contentious discussions.  It’s harder to get into a pitched battle with someone after spending a few minutes talking about how his daughter just took her first steps.   

I also try to reach out to team members individually on a regular basis to get their opinions on various topics.  By doing this, not only am I showing them that I value their input but I also give them an opportunity to discuss questions or concerns with me directly.  It’s important for every member of the team to feel valued and appreciated.  In addition, the feedback that you as a leader get from your team members can be invaluable at times.  It is not unusual for people to far more candid on a one-on-one call or IM than in other more public forums.   

The following is a great article that elaborates further on these points: Global Teams That Work


Daily Scrum Calls

I’ve found that daily scrum calls are even more important for distributed teams than they are for co-located teams.  They should be scheduled so that everyone can attend every day.  Any extended questions or discussions should be handled offline in other meetings to keep the scrum as brief as possible since it does involve the entire team.    I usually like to target 15 minutes, but as team sizes grow it’s not uncommon that scrum calls will go to 30 minutes.  It’s important that the team leader ensures that extended conversations are quickly rescheduled for follow-up meetings.  High quality conferencing software is critical.  We’ve had a lot of success with Google Hangouts Meet and UberConference, although there are many other choices out there like Zoom that I’m sure are equally good.  

Daily scrum meetings are one of the most important tools for ensuring that every member of the team is given an opportunity to voice both progress and any roadblocks or concerns they have.  Not only is it a status report but it’s an incentive to be as productive as possible.  Nobody wants to report to the entire team that they accomplished little or nothing the previous day. 

Scum calls are also the perfect venue to frame the team’s near and long-term goals.  On extended projects, it’s possible that these goals could shift over time.  It’s important for team members to have a full understanding of overarching goals rather than just the narrow view of ticket-by-ticket goals so they can understand where their work fits into the overall plan.  Not only is this important to maintain team cohesion, but it can also often produce observations from the team that may not have occurred to management that end up being critical to the success of the plan.


Brainstorm as a Team

A great way to mitigate conflict is to have team brainstorming sessions.  This allows team members to voice their opinions in a collaborative forum that encourages the group evaluation of contrasting ideas.  This also gives the team a feeling of ownership regarding major decisions.  This ultimately helps team cohesion since these decisions aren’t coming down to them from a management team that sits above them which could be perceived as not caring about their input.  It’s important during these sessions that the team leader solicits input from everyone in attendance and ensures that no one person or group is unfairly dominating the conversation.   




The Value of In-Person Meetings

When possible, it’s important for the team lead and the business analyst to meet in person with the customer and when possible with other team members.  It’s best to do this quarterly, especially with a customer who is remote.  Over the years, I’ve found that the value of having lunch, dinner or drinks with someone is as important as what you do in the office.  When colleagues see each other as people and not simply as business entities it leads to a greater chance of compromising when disagreements arise.  


Power of a Quick Call vs IM

Sometimes over instant messaging it’s very hard to convey meaning properly.  Even worse, I’ve found that it’s possible that very innocent phrases or even delays in responding promptly on IM can be misconstrued and can spiral out of control.  Whenever I sense this happening, I suggest a quick call.  I’ve found that this invariably resolves the confusion and ends up being a much faster method of communication than relying solely on instant messaging.


Integrate and Test Regularly

Since distributed team members may be working on very different pieces of code that all need to come together seamlessly, it’s important to integrate daily and deploy these to a common development environment that everyone has access to.  In addition, new or updated code should be put through rigorous unit, integration and regression tests daily to catch issues as soon as possible.  This will help to ensure that the code is solid before it is promoted for user acceptance testing.

As in any other development team, you should invest heavily in automated testing at various levels of the code to try to achieve as much coverage as possible.  For distributed teams, it is even more important to catch and socialize errors as quickly as possible so they can be dealt with before reaching user acceptance testing or, in the worst-case scenario, production.


Issue Tracking Software

Distributed teams also have a much greater need for issue tracking software such as JIRA or Bugzilla.  There are obviously many other tools that are equally good or arguably better but the point is to use something.  It makes me crazy when I work with customers who use Excel spreadsheets, email or instance messaging to handle bugs and issues.




Project Management Software

Similarly, project management software is critically important to keep everyone on the team coordinated.  In my experience, JIRA and MS Project have been quite helpful, although tools like Monday look very promising.  




Celebrate Team Victories

One great way to build a cohesive team is to celebrate your victories together.  After you deploy a release to production send out an email to the team thanking them for their hard work and provide a “greatest hits” summary of all the cool new functionality they just delivered.  Similarly, if someone does a great job, be sure to thank them publicly.  The daily scrums are a great place for a lot of this quick, positive feedback.

On the other side, if the team faces a major issue or crisis, don’t engage in a search for someone to blame.  Instead, solve the immediate problem and then, as a team, brainstorm together to find ways so that the issue never happens again.  If you’re on a project long enough you will inevitably have moments like this.  How you handle them will greatly determine whether your team is a cohesive unit that solves problems collectively or a group of individuals who are constantly ensuring that they won’t be the target of blame.  


In Conclusion

The key to a successful globally distributed project team is ultimately trust and loyalty.  This is fostered through open channels of communication and an atmosphere of empathy.  The entire team should feel that their opinion and contributions are important and appreciated.  They should also all know what the team’s collective goals are and feel that they have participated in deciding how best to achieve those goals.  It is the team leader’s job to foster this culture.  This is not a one-time task.  It is a daily endeavor to cultivate and nurture this culture.  I’ve found that the teams that can achieve this can accomplish great things.