Your are here: Home // Agile, Weekly digest // Implementing Agile with Distributed Teams

Implementing Agile with Distributed Teams

This week’s digest attempts to answer an important question – can Agile techniques be adopted by large teams that are geographically distributed and possibly working in different time zones?

Many in the enterprise software community assume that Agile techniques are targeted only at small, co-located teams of about ten people. This assumption makes sense to a certain extent as time zone differences, language barriers, cultural differences, and lack of synchronization of development processes make implementation of Agile techniques in offshore teams a great challenge. However, these challenges can be overcome by reinforcing the following practices:

Rapid and Frequent Communication : One of the most important principles of Agile is active and regular communication between all teams involved in getting the software to market. So, if there is one or more offshore teams involved, a daily status update informing the other teams of the day’s progress (what they did that day, what they are the planning to do the next day and the problems faced) can be done by making some adjustments for the time zone difference. Instead of the entire team attending the stand-up meetings, every team can have a local stand-up meeting and the team lead alone can convey it to the other team(s). Weekly status meeting with the entire team and face-to-face meetings whenever possible (so you need to budget for that) should also be given priority. All this will ensure that team members are on the same plane and project is progressing as desired. Besides teleconferencing, other collaborative communication methods should also be considered and made use of as appropriate, including video conferencing, wikis, instant messaging, VoIP solutions etc.

Automated Builds and Continuous Integration: The practice of automating builds at regular intervals is advised as several teams develop simultaneously and since the team members are geographically distributed, it becomes a massive task to ensure that each change is integrated into the build. So, if there is continuous integration, any integration issues can be sorted out immediately rather than solving huge issues at the end. An effective integration should include practices like compiling, database integration, unit testing, deployment, functional testing, notifications, and reporting.

Short Iterations: Product requirements keep changing due to a better understanding of what the market really needs. Hence, short iterations that last from one week to four weeks, with working software at the end of each iteration, is advisable. In the case of distributed teams working on different functional areas, having a demo at the end of the iteration will help clarify whether offshore teams have really understood the requirements communicated to them, instead of waiting for months to see the end results.

Efficient Team Organization:
Getting the entire team together at the beginning of the project results in everyone getting to interact with the other team members and can result in better camaraderie and collaboration. Project managers should involve distributed team members to discuss release dates, associated costs, and risks involved in the project. Team members at different locations sharing the responsibility of different functional areas (instead of owning different phases of the project) and modules, and collective code ownership can foster a strong sense of pride and ownership among the whole team. Cross functional teams and Scrum masters present at all major team locations also helps to a great extent.

Read the entire digest contents

Share and Enjoy:
  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Twitter
1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Related Post

Leave a reply

Copyright © 2009 producteering.org . All rights reserved.