It is common these days to have delivery teams who are geographically separate. This may occur because offshore resources have been selected for cost saving purposes or simply because teams are split across a region or country.
Scrum calls for co-located teams and the Agile Manifesto embraces face-to-face communication as the most efficient way for teams to communicate. There is no argument with this point. However, when teams are geographically separate, we need to find a compromise.
This article provides techniques for increasing the direct communication for teams who are geographically separate. This includes a mix of technical solutions and meeting logistics.
Be as Face-to-Face as Possible
Coordinate important meetings to include the whole team whenever possible. This approach requires additional costs because travel and lodging are required. Sprint and Release planning meetings benefit from having the whole team in the same room.
If the largest number of people are in a single location with a few other team members in other locations, use the main location for the meeting to save costs.
Schedule happy hour meetings to allow the team to get to know each other and to increase morale.
Use Video Conferencing Equipment
If teams cannot attend meetings in person, use Video Conferencing Equipment. This also has a cost associated with it but the benefit is worth it. This is best utilized when a team member operates a camera at each location. As people talk, the camera is pointed at the speaker. This really improves communication because body language is apparent and people are more likely to participate.
Teams can also collaborate using a whiteboard. Simply point the camera at the board so remote teams can participate.
Rotate Offshore Teams
This approach involves rotating a portion of an offshore team to the project site. For example, a member of the development team from India would spend a period of time onsite with the US team. This approach provides the offshore resource with valuable insight into how the US team operates and allows the remote person to get to know the team.
Later, when the offshore resource returns to India, valuable experience returns with him.
There is definitely additional cost associated with this approach. It is best to decide on this approach before an offshore partner is selected. During price negotiations, this point can be raised. Typically, a blended rate is a solution so the cost of the travel may be accounted for. This blended rate approach usually has a minimal cost effect on the project budget.
Use Technology to Reduce Friction
It is common for agile teams to work together in a shared space. This allows issues to be handled quickly as they come up. Since everyone is in the same room, this is easy. Of course, when teams are split, this is not possible.
Instant Messaging tools like Skype or Lync offer some solutions. Advise the team to Instant Message a person when a question arises. Screen sharing are also available on these tools, so it is almost as easy as huddling around a computer together to collaborate.
These tools also support groups of users. In one of my projects, we setup a DevChat group that the whole team were members of. When any questions arose, they were posted to DevChat. Anyone on the team who had an answer posted it back to the group. It was a very effective communication mechanism.
Keep Scrum Teams Together
When possible, keep scrum teams together as a single unit. For example, if an offshore team is being used to contribute to a project, it is better to have a single scrum team offshore than to split the team between multiple locations. This allows the single scrum team to gain the co-location benefits.
Different time zones are a major contributor to team friction. When questions arise and some of the team are sleeping, there is an impediment to progress.
An obvious solution is to schedule some overlap hours when the whole team is available. To make this easier, select offshore vendors who are located in regions where the time difference is less of an issue. South America is becoming a popular offshore region just for that reason.
It is also important to have a local resource on call from the offshore team. This should only be used in an emergency and only if the offshore team will be idle because of some situation.
I have seen times when the whole offshore team was idle for a day because a server needed to be re-booted. A call to the on-call person would have saved a lost day of productivity.
Geographically separate teams do make it more challenging for teams to work together, but it can be done using technology and some structure changes.
- How Rally Does Distributed Meetings - There are some very good points in this blog post.
- Logitech Conference Cam - This is a $250 conference solution.
- Using an Agile Software Process with Offshore Development - Blog post by Martin Fowler is very good. This should be read by anyone considering offshore teams.