| 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.
Related articles
Using an Agile Software Process with Offshore Development
Transitioning to Agile in Onshore-Offshore Distributed Teams
Agile and Offshore: Asking for Trouble?
How to Implement Agile Offshore Development
Offshore/Distributed Agile: Challenges, Productivity and Tools
|
|
Upcoming WEBINAr |
|


|
|