Agile software development will soon be dominating the industry, with more businesses adopting Agile methodology each day. Companies that hire programmers offshore, however, are not so fast to dive into distributed Agile development. The core values of Agile - face-to-face communication, understanding, trust - may seem difficult to live for teams that are located away from each other and differ in mentality and language. That’s why many companies think Agile software development is not something they can implement with offshore developers.
Different time zones, language barriers, differences in mentality are going to make distributed Agile development harder, but with the right approach you can minimize their impact and create a successful distributed Agile team.
So, what difficulties should you be ready for and how can you overcome them?
The whole point of Agile is making development faster and more flexible. To achieve that, Agile software development skips bureaucracy and encourages constant face-to-face communication. It’s the regular meetings that keep everyone posted about the updates and give the team members a chance to ask important questions and clarify the details.
When you have onsite staff and an offshore development team, it’s difficult to keep them all connected, since there is no face-to-face contact, and communication is limited to email or chat. The time difference is making it even more problematic, as the working hours of the two teams don’t fully coincide.
What Can You Do?
Make sure you provide tools for group video conferencing, as well as sharing information and Sprint plans online. Video is vital: it partially compensates for the lack of personal communication, helps build trust, and can help avoid understanding issues. Providing common access to the knowledge base and the Sprint plans will be effective for integrating every team member into the process. It’s also much easier to facilitate communication with an offshore team that’s located 2-3 time zones away rather than 12, so you might want to consider a closer location for outsourcing.
In the Western world saying your opinion out loud is encouraged, even if it contradicts the management’s point of view. In the Eastern European countries, for example, it is not common to share feedback or openly criticize what the colleagues say, so a discussion may be difficult to raise with offshore programmers. Sharing opinions is essential for Agile development, so you need to overcome that cultural obstacle.
What Can You Do?
Encourage their participation in the discussion, ask everyone directly for their feedback, and explain to the coders that their input is vital. It’s also important to adequately address all questions and suggestions you get: if you want input, demonstrate that it is heard and appreciated.
Naturally, it is difficult to build trust between people who never met each other, but trust is essential for successful distributed Agile development. Very often, lack of it causes a scenario where the offshore team just gets a list of tasks to complete and is not part of the bigger picture.
What Can You Do?
When you start working with the offshore team, you need to invest a little time in bringing them closer to your onsite staff. Arrange “exchange” trips from time to time, so that both sides get to know their remote colleagues and the way they work. Encourage them to socialize and connect with each other better. This will help your developers not only build trust, but also learn to overcome the language and cultural barriers.
The experience of many businesses shows that onsite personnel and offshore developers can successfully work as one Agile team. Distributed Agile development requires a little more effort, but the ultimate result is worth it.