If you are thinking about using an offshore development team to build the app you are probably wondering what is the most difficult thing when managing offshore app development? By far, the hardest problem is the communication gap. Other problems include time zone differences, cultural issues, lack of business context, and offshore team feeling alienated from the rest of the team.
There are two main communication issues that the client faces when working with offshore development teams:
If you live in the US and employ a team from a country where English is not a primary language, chances are high that most team members are going to have limited language skills, or their accents may be too thick to understand.
That’s why when hiring developers, I always reject those who are not proficient enough even if they have superior technical skills. But if the team is already formed, there are ways to reduce language related issue. Click here for more information.
2. Client has unclear goals
You are not the only one who may have trouble understanding the team members. Offshore teams cite clients’ inability to explain their goals as a top communication issue.
Ability to quickly change the direction of the product is the main advantage of startups over established companies. While big companies hate uncertainty, startups succeed when they embrace it.
There is a methodology designed to build products when it is not clear what should they look at the end. This methodology is called Agile. Fundamentally, Agile is a collection of base principles and there are several processes that were built to make Agile useful. My favorite is Agile Scrum.
If you never used it before I suggest to find videos on YouTube and learn basic principles. The main parts of Agile Scrum are sprints and daily scrum meetings. Sprint is a defined interval during which the team commits to deliver something. Sprint intervals are always the same. They can range from 1 week to 1 month.
You may need to experiment with your team to find what works best for you. When I was managing both offshore and onshore teams, I used different sprints with both teams: 1-week sprints with offshore team and 2 weeks with onsite.
Daily scrums are short status meetings when each team member reports what she did yesterday, what she plans to do today and if there are any blocking issues. Your goal as a manager to remove blocks.
When used properly Agile Scrum can help you to clearly communicate current goals, control development velocity and keep iterating your idea. To make sure that everyone is on the same page I suggest investing in Agile Project management tools.
There are many project management tools and many of them are free (they may have premium paid features).
Time Zone Differences
By definition, all offshore teams located in foreign countries and some of them can be pretty far from your home. For instance, the time difference between me and my team in the Philippines is 12-13 hours (depends on daylight savings time). When it is 9 am in Washington, DC it is 9 pm in Manila.
This time difference may or may not be an issue for you. If you have a full-time job and work on the next big thing at night from 9 am till 12 am, then having the offshore team 12 hours away is actually good.
Your evenings are mornings for them, so if you have proper communication tools, e.g. Slack, you can overlap for 3-4 hours. I always suggest having at least a couple hours overlap between onsite and offshore teams if possible.
However, when the onsite product and offshore development teams are separated by many zones, simple clarifications can take a day to resolve. To solve this problem, I often assign multiple tasks to each engineer and define each task priority. Developers know if they get stuck on a task with the highest priority and they need clarifications from me before they can move on, they can switch to the next task until next daily scrum.
When employing an offshore team, it is useful to know at least a little about their country and traditions. Especially, make sure that you know the main holidays.
Usually, offshore developers are curious about your culture as well, so sharing anecdotes specific to your locale sometimes can help them to know you as a person.
Lack of business context
Where all team members share the same physical space, they share the context of the business. Developers often have the opportunity to interact with the customers directly or learn about customers’ problems from local sales and customer experience teams.
If onsite members do not continuously transfer updated vision, new directions, and priorities to the offshore team, then this context gets lost. It’s a human nature to explain things to other people assuming that they share our vision. If another person lacks the same context as you have, then the other person will work based on his own assumptions.
So it is very important to be as detailed as possible when explaining the product requirements.
Feeling alienated from the client
When people feel alienated from the rest of the team, when they feel that they are not a part of the company, they become less motivated and excited about their work.
If you do not treat offshore developers as an extension of your team, they will not be invested in your company’s success. When connecting offshore developers with the company’s grand vision, culture, and purpose, you can make them more motivated and productive.
Following steps can help to alleviate the problem:
- Regularly share the grand vision
- Include the offshore team in all communications
- Include them in all company meetings
- Meet with them regularly. To know more about benefits visiting offshore team please read my post here
Another problem related to motivation happens when offshore developers assigned boring tasks. I know this firsthand, I’ve lost the best developers because the tasks I was giving were not challenging enough to keep them from looking for new opportunities.
Best engineers enjoy challenging problems, they love to learn new technologies. If the offshore developer is paid less, then junior engineer on site it does not mean that the former is less capable. His salary is lower because the cost of living in countries other than the US is generally lower, not because his skills are subpar.
And since we started talking about retaining top talent or rather the possibility of losing one, it is very important to keep and maintain the documentation. Very often companies change their outsourcing vendors and having up to date documentation can minimize the pain of switching offshore teams.
How to deal with difficult team members
As with any team, offshore teams can have difficult team members. They can cause stress in the team, demotivate other team members, spread negativity, and generally affect the entire team productivity.
There are many reasons why some people cause problems. They may have problems at home or have problems with health, financial problems, etc. The first thing you need to do is to identify the problem.
I usually set up a one on one meeting with a difficult team member and directly express my concerns. And then I listen.
Sometimes the troublemaker may not even realize that there is a problem. After the one on one meeting, I usually set up an action plan. For instance, if the team member is missing meetings, I set a probation period during which I record every time he or she is not present.
If the problem is not behavioral, if the developer has a real issue with say health, I try to help him as much as I can. The key when dealing with difficult people is to avoid being emotional, listen and try to understand what the real issue is.
Sometimes the solution is to move the developer to another task or another team. I always try giving people a second chance, but a third chance is unlikely.
Images used: DiBona, Dylan. “The Ride Journal. Independence Day.”. Jul 4, 2009. Online image. Flickr. Feb 19, 2019. https://www.flickr.com/photos/dylandibona/4030404297/