There are two twists to this question. One is how to
effectively manage teams distributed across the world; another is how to do
that in Agile mode.
Managing distributed teams is hard irrespective of whether
you use Waterfall or Agile. Communication is the key. It may seem obvious. But,
you will be surprised how many managers consistently mess up in that
area. It is easy to assume a lot of things about stakeholders who are not
physically present in your office. I have witnessed incidents where a product
owner in London assumed that developers in India would work non-stop, in
varying shifts, for few days before the launch. We had a client in Caribbean
islands who assumed that modifying UI for iPhone app is just a matter of
adjusting some CSS; he thought his
change request would take only few hours whereas the development team took more
than a week. The list goes on and on.
If the team is multicultural, that adds more spice to the project
manager's life. Remote teams in India, Japan, France or Dubai have holidays
that may totally surprise project managers in U.S. It is not uncommon for
remote teams to assume that everyone in the world know about their traditions. Some
countries have Fridays and Saturdays as their weekend. Some have Thursdays and
Fridays. Project managers need to educate themselves on culture and tradition of
all stakeholders while managing distributed teams.
When we first started Agile, there was a lot of apprehension
about using Agile with distributed teams. It turned out that Agile would
actually make project management easier compared to Waterfall. If the offshore
team is going to have religious holiday on a Monday, that discussion will come
up in daily scrum many days before that Monday. Ideally, that would come up in
sprint planning. Scrum masters may need to move around sprint meetings (sprint
planning, sprint retrospective, etc.,) to suit the timings for all
stakeholders. But, that's part of the game anyway.
To effectively manage globally distributed teams, following
are vital:
1. Team collaboration software - Example: Confluence, Asana,
Basecamp, Google Docs, etc., These tools help the team to collaborate on the
project requirements and other project documents. Asana and Google Docs are
free.
2. Backlog management tools - Example: JIRA Agile, Rally, etc.,
These tools will help you to maintain your product backlog and sprint backlog.
These products are not free, but worth the price.
3. Web conferencing software - I would use GoToMeeting whenever
possible. It's a paid product, but does the job very well. If you don't have
budget for it, join.me is a good free product to use.
If your stakeholders are not familiar with any of these
software products, train them before starting your first sprint. That will save
you lot of headache.
Before concluding, an important point about daily scrums for distributed teams:
Set a time for daily
scrums, ask all teams including remote team to participate and stick to the
time. This is a tricky part. Timing may not work out well depending on
where your remote teams are. If your team is in San Francisco and your remote
team is in Ireland, holding daily scrum at 8:45am PST would make sense for all
team members. However, what would you do if your remote team is in Japan? I
have seen companies doing 4pm PST scrum to accommodate both U.S and Japan
teams. One of those companies are having two scrums every day -- 10am PST scrum
for teams in U.S. and 5pm PST scrum for Japan team. That is very unusual, but
happens.
No comments:
Post a Comment