The fundamental role of technologies is to provide a shared context, transparency, and the infrastructure for faster feedback to distributed agile development teams.
Collocated agile teams have a physical card wall that provides them instant visibility on priority and status of their project. Keeping physical card walls synchronized across multiple locations is a painful activity. Tools like Mingle from ThoughtWorks have taken the real world agile metaphors such as the card wall and digitized it. This has made it possible for distributed teams to experience the same or enhanced visibility on projects. That and the advanced analysis that is now possible with a digitized card wall provide for a more enriched experience of transparency and shared context to teams.
Using source control repositories that allow distributed teams to work off of the same codebase is critical for development teams to have a shared context. However, this must be supplemented by a suite of automated tests that are harnessed to a continuous integration and deployment process that allows for the rapid feedback cycles that distributed agile teams need. While this is important in collocated agile teams, on distributed agile teams it is critical to automate the construction and maintenance of the build and deployment process that can manage deployments across multiple environments.
For example, Cruise, our continuous deployment product, supports distributed teams in promoting builds to environments across locations, so each stage in deployment is utilizing artifacts that have passed through a pre-specified stage with adequate checks. This not only avoids rework but also ensures that a distributed team is confident that it is working on the right build that is deployed in the right environment to perform whatever tasks the team needs to perform, either user acceptance testing by remote customers or manual and automated testing by an offshore testing team.
Tools for test automation are more effective when multiple roles (across locations) can participate in the testing process. Twist, our collaborative testing platform, for example, will allow business users or even customers to author acceptance criteria using English-like constructs, and a development team in a remote location can automate these tests. This fosters collaboration amongst various roles, potentially located at different locations.
Sticky ToolLook: How do networking tools like email, instant messaging, video conferencing, etc. help the implementation of agile across a distributed team?
Vishwanath Nagaraj:In order to address the reduced communication bandwidth, the market has responded with a lot of fancy gadgets that promise improved communication. My vote would be to build your communication infrastructure using easily accessible, low-maintenance tools. So, rather than trying to simulate face-to-face communication through expensive infrastructure such as video conferencing (which you may choose to do at later stages), I believe it is more effective to start with simple measures such as:
- Phones: High-quality phones that teams can use for distributed meetings, such as sprint or iteration planning, distributed standups, etc., where there is an exchange of context and opinions that is better through voice than written communication. In addition, provide everyone on the team mobile phones with international-dialing capabilities. Team members who talk to each other frequently have a greater chance of building a trust relationship with each other.
- Instant messaging: Collocated agile teams usually sit across a table and there is near-constant conversation. While it is not always about work, this chatter forms an important part in communicating context on a project. Instant messaging is the nearest replacement to this chatter on distributed teams. What I like about instant messaging over email is the instant use of emoticons :), which allows you to communicate mood and tone with the written word. The "murmur" feature in our next release of Mingle allows project-specific team conversations and chatter to be recorded and made accessible to team members in multiple locations.
- Email: Despite its ubiquity, emails have traditionally not been very helpful for distributed agile development. Email conversations are not as effective and interactive as voice or instant messaging and are not usually available to people who join projects after the mail has been sent. Broadcasts often spawn fragmented responses. However, given its popularity, email communication will remain a major component in distributed team communication.
Sticky ToolLook: Do you think more organizations will be open to distributed agile as virtual tools blur the line between collocated and distributed teams?
Vishwanath Nagaraj: I definitely believe that more organizations will be open to distributed and offshore agile as the tools and technologies address the challenges of distributed teams. I also think the market imperative of adopting a globally distributed way of working is going make it attractive for organizations to build tools and technologies that support this way of working.
A consolidation of the various communication mechanisms is happening in our industry, which I think distributed agile teams can take advantage of. With email integration with instant messaging (e.g. Google mail and Google Wave's promise of richer communication mechanisms), I am sure we are poised for interesting opportunities for distributed agile development.
Having said that tools and technologies are a part of the puzzle, the harder challenges are often the softer ones--those that deal with changing mindsets, erosion of trust, and understanding different cultural contexts. Taking those critical steps to promote a one-team feeling and creating an environment where people can have fun while they work is what often makes the difference. In the final analysis of distributed or collocated, Murphy's Law exists and things do go wrong on project. When you cannot be there in person to fix things, it is the fun you are having working as a team that will make people go the extra mile to make distributed projects work.