Recently we came across an interesting presentation by Agile Guru Mike Cohn, founding member of mountaingoatsoftware.com. Presented at the Danish Agile User Group conference, this presentation presents his ideas on how to make Agile work across distributed teams, and the challenges encountered in achieving the same. While the presentation covers at length issues like scaling, managing dependencies and coordination in distributed agile, some of the three key points of the presentation are:
1. Proactively Manage Dependencies: One way this can be achieved is by sharing team members across different teams. It helps if at least some team members are aware of what is going on in other teams at all times. Another way is to create ‘integration teams’ – a virtual team composed of team members from different teams who control the integration of different parts of the project.
2. Decide how to distribute: This can be achieved in two ways: each team across different locations has all needed skills or teams are deliberately distributes in such a way those Individuals in different locations work as one team. There are advantages and disadvantages to both ways of distributing a team.
3. Create coherence: Some tips on how this can be achieved.
- Acknowledge big cultural differences
- Acknowledge small cultural differences
- Strengthen functional and team subcultures
- Build trust by emphasizing early progress
4. Change how you communicate
- Encourage contact between teams: teams get together in person for at least some time by seeding contact visits, or travelling team members.
- Add back some documentation: cannot rely as much on talking
- Encourage lateral communication between team members
For us at Net Solutions, a company practicing agile development with distributed teams, most of these ideas sound very familiar. In fact, we have been actively putting some of these ideas in practice since 2008. For example, we have been managing dependencies between different phases of a project lifecycle by creating virtual teams consisting of team members from different functional areas, each of whom is skilled in a particular area of the project lifecycle. We have strengthened our functional team subcultures by having functional area managers for different functional areas. We encourage stakeholder meetings especially at the beginning of project. Also, our business analysis team creates FRDs and wireframes which ensure that different team members remain on the same page.
Reading all these ideas in Mark Cohn’s presentation has reaffirms our belief that Distributed Agile practices are indispensible for a company working with distributed teams.
For more on this very interesting presentation, please click here.