Co-locating Agile development teams with the customer or business unit is optimal for collaboration and customer intimacy. However, co-location is not always feasible. Development team members could be from multiple geographic locations, the customer could also be spread across multiple locations, and economic considerations might direct some of the development to regions with lower costs.
This requires an effective Distributed Agile/Remote Agile Delivery model. Here are the four key considerations that need to be taken into account for a Distributed Agile Delivery model to ensure successful delivery:
1. Culture. If the teams are spread across multiple countries, cultural differences are bound to arise due to diverse work practices, values, processes, styles of leadership, decision-making, and problem-solving approaches. Not being able to work side-by-side can lead to misunderstandings from unrecognized cultural differences.
To mitigate, it is essential to build trust and establish relationships between the teams early on. Initiation events, where teams meet and work together, and establish common standards and consistent practices, present a great opportunity to establish trust and foster team building. Sending “Ambassadors” from each site to the others on a periodic basis is also an effective way to bridge the cultural gap.
2. Common hours and communications. Cultural and language differences make effective communications hard. Even with web- and video-conferencing, it is challenging to overcome the lack of visual cues and face-to-face interactions. This is further compounded by insufficient time zone overlap.
Teams need to work out an approach to shift some work hours to improve their time zone overlap. Often teams agree on “core hours” during which members at all locations will be simultaneously available. Reliable communication tools, desktop sharing, phone, instant messaging, and virtual rooms can then play a big role in establishing strong communications. Agile coaches and Scrum masters need to step up as effective coordinators. Bi-directional travel by key customer stakeholders and vendor leaders also helps.
3. Collaboration. Distance makes collaboration and frequent communication challenging. Context of discussions is sometimes lost as well. Using a “Proxy Product Owner” at each site can help bridge any gaps in business and domain knowledge. Building a work culture around compulsively using Enterprise Agile Planning Tools (EAPT) and collaboration tools facilitates collaboration among remote teams. The Ambassador program mentioned earlier — rotating some or all of the team between locations — and bringing the teams together on a periodic basis helps.
4. Consistent Infrastructure and Configuration Management. Challenges with Distributed Agile multiply if you do not have standard shared infrastructure and continuous integration. You need to leverage virtualization and provide identical environments for teams at all sites. Other strategies include using a single configuration management system for all teams, deploying DevOps (at least Continuous Integration and Continuous Testing), and insisting on frequent builds.
Ensuring that these four areas are addressed at project onset sets the collaborative tone for your distributed agile delivery. Having a collaborative team mindset from kick-off through delivery is crucial to project success.