Sunday, November 30, 2014

Challenges and success practices for agile distributed team

Challenges

Time zone, culture and language differences
One of the main major problems in distributed team is time difference. In order to communicate, resolve problem, people need some of their activities to be synchronized. More overlapping time during the days normally result better engagement and collaboration. When working with different time zones, individuals can be a day behind of getting something done. The other barrier could be different language. All over the world people have different languages. If the communication is not clear, it can easily create misunderstand and lead to mistrust among team members. Finally, cultural issue also plays an important part. Western culture likes fast response while Vietnamese culture expects to carefully craft their responses and the idea.

Communication
As outlined above, different time zone, culture and language can create communication challenges for teams. A major problem with the geographically distributed team members is how precisely they address questions or pass on information to their colleagues.

Technical alignments
Team members from different background and regions have different preferences about technologies and tools. Misalignment in engineering best practices can also create conflicts between team members. Maybe some members will want to be aggressive about their work and others would not want to be like this because they do not believe in being that way. With the co-located team, these misalignment can be generally resolved over time by discussion to gradually build mutual understanding.

Managerial issues
As the team members are distributed over different locations, there’s a need for online project and process management. In distributed environment, transparency and visibility are essential for all members in order to engage all members in the development process.

Building trust
Finally, the most crucial thing of a team is building trust. Because of outlined above things, it is a challenge to build trust when team members are distributed across different location. It’s often easy to blame and critize the other groups and the team can break down into competing tribes.

Success practices

Exchanging program
Regular visits by sending members to other location will foster collaboration. During the visit, the onsite team member will work as a regular team member at this location. This enhances understanding and also creates personal trust between the onsite team member and local team.

Knowledge sharing
There is a need to implement the single source for information across all teams to foster greater understanding among team members. The knowledge base should be accessible online in real time by all locations. As set of tools can be used as follows:
  • Wiki
  • Shared mailing list and folder
  • Online project management tools

Communication
In Scrum, face-to-face communication is recommended as the most effective means of exchanging information. However, it is the most challenging in a distributed environment. In order to achieve the same high level of engagement, we need to make a lot more effort. Following practices can be used to foster better communication:
  • Overlapping working hours needs to be established as much as possible.
  • A comprehensive suite of video conference, desktop sharing and instant message tools should be provided. These channels must be readily available and easily accessible to all team members.
  • Each local team can hold their own daily stand-ups, retrospectives. The action items and information should always be visible and shared to all teams. Moreover, it is quite effective to have a Scrum-of-Scrums few times per weeks to share enough information.

Remote paring
Team member can pair with another remote team member which can lead to great knowledge transfer. The understanding was much deeper and an immediate bond was created between the two who paired. Remote pairing should be done frequently to share the knowledge and experience and avoid code ownership.

Engineering best practices
It is important to establish a set of common best practices across all remote teams. Scrum Master must facilitate and ensure agreement from all remote teams. It will re reinforce the trust and shared values between team members.

No class system
No distinction should be made between team members at different locations. With a class system, it will lower the trust relationship between teams. The ‘lower’ class will always feel that they are left out.

No comments:

Post a Comment