The 8th Annual State of Agile Survey, conducted in 2013, shows that 76% of the respondents are distributed Agile teams. This may seem controversial: isn’t colocation the best way to practice Agile methodology? Obviously, it is, but the amazingly high rate of companies that practice distributed Agile process shows that remote collaboration doesn’t have to be an obstacle for agility.
Agile processes for distributed developers will differ from those that collocated teams implement. Because the team is not homogeneous and the circumstances and purposes differ, the processes should be tailored to these peculiarities.
What Are Main Challenges for a Distributed Agile Team and How to Overcome Them?
Agile requires intense communication that helps to skip time-consuming bureaucratic procedures and ultimately make development faster and more flexible. In a distributed developers team, casual communication is often absent, so a lot is missed out. Plus, with the time difference, response may be delayed, and organizing meetings is more difficult.
What to Do?
Use all types of tools for communication, like chats, video conference tools, phones, or emails. Encourage all team members to ask each other questions and turn to each other for advice whenever they need it - even if that means overcommunicating. That will add to the regular meetings and communication sessions you will arrange.
It is more difficult for distributed developers to keep sight of the bigger picture, They become too focused on the individual component they are working on and lose the bigger view.
What to Do?
Use tools that help all members of the distributed team see the status of the project. Also, a recommended practice is to distribute work between different parts of the team in functional parts of the whole product rather than system components. If one part of the team works only on the front end, for example, they become stuck in their side of the project and lose sight of what the rest have accomplished.
If a team is distributed across cultures, these peculiarities can also become an obstacle for an effective Agile process. For example, in some countries the mentality keeps people from speaking up, so some vital information can be lost, or valuable feedback will not be given. Even a simple word of agreement in one culture will mean that a person will do as you said, and in another - that they heard and understood you. These misunderstandings can slow down the process.
What to Do?
Make an effort to give all your distributed developers a better understanding of their fellow team members’ cultures; educate them on the common corporate culture they should be following (e.g. sharing their opinion even if it’s not what they typically do). If possible, arrange exchange trips so that distributed developers can get to understand each other’s mentality better.
Agile development requires more efforts in a distributed team setup than in a collocated environment, but on the other hand, it helps you overcome the barriers that set the team apart. So, instead of the annoyingly slow process of exchanging emails and documents, your distributed developers can go Agile and achieve their common goal much faster.