You are on page 1of 6

Agile 2008 Conference

Practical Considerations for Distributed Agile Projects

Jane M. Robarts
ThoughtWorks Canada
janerobarts@gmail.com

Abstract and client employees. I was the offshore project


manager and, at the time, was a resident of India.
As a member of project teams both onshore and The second project, Project Dragon, was one of
offshore, I have learned many lessons about the ThoughtWorks’ early ventures in China. It was
challenges specific to distributed agile projects. If I distributed between a client site in Hong Kong and the
could relive my last four years as a project manager at ThoughtWorks office in mainland China. I was a
ThoughtWorks, there would be so many simple, small member of the team early in the project, providing
things that I would do differently. This report expertise to get the project up and running. The project
discusses those lessons as items that must be involved approximately 20 individuals from
considered as part of the planning and execution of ThoughtWorks. I spent the early days of this project in
such projects. China, before going on to Hong Kong and the client’s
offices.
1. Introduction Project Cub, the third project was for a US client. It
was the team’s first attempt at agile delivery and
If I could relive my last four years as a project involved an offshore (outsourcing) vendor in India.
manager there would be so many simple, small things This team had both vendor and client employees
that I would do differently. During this time, I spent working in the US, and vendor employees in India.
a large amount of time on distributed agile projects. There were about 15 team members working on both
My experience has shown me that there are a lot of maintenance and new features for an in-house system.
additional things to consider on such projects; knowing For this project, I was located in the US acting as an
these up front can have a significant impact on the advisor and coach to the delivery team.
project’s success. In all cases, cost was one of the deciding factors for
This report focuses on three ThoughtWorks projects distributing the projects. An outsourcing organization
from this period. Specific matters should be was used for Project Cub since the client did not have
considered when weighing the value of distributing a its own offshore component.
project. Extra thought needs to go into planning a As a Canadian on all these projects, I was a
distributed agile project. And different methods may be foreigner regardless of which region I was working in.
used when improving a distributed project. These are I was, however, one of many foreigners on each
all discussed within the context of my personal and my project. All teams were multi-national, having
teammates’ experiences. members from at least four different countries, with a
broad mix represented in each region.
2. Project Backgrounds
3. Communication Factors
The first project, Project Mammoth was an 80-
person engagement distributed between the US and Agile projects expect a high level of interaction
India. Both locations had developers, business between the customer and the development team.
analysts, and quality analysts working on the Face-to-face communication is valued as the best way
assignment. Subject matter experts and product to communicate between all delivery team members.
owners were located in the US. This project was long- Distributed agile projects obviously face challenges in
running, composed of multiple releases over several this regard. Although not a replacement, we have used
years. Team members included both ThoughtWorks several different techniques to compensate for the lack
of face to face discussions.

978-0-7695-3321-6/08 $25.00 © 2008 IEEE 327


DOI 10.1109/Agile.2008.57
3.1. Visits and Rotations developed from the Indian team members towards the
US team, having now met some of them in person.
When permanent face-to-face communication is not As a final method of ensuring the team was
available, we have found that the best alternative is to transferring knowledge and behaving as one large
plan for rotations through each site on a regular basis. team, we arranged for members of the delivery team to
For Project Dragon, we were fortunate to be able to get rotate between the US and India for several months.
the entire delivery team together in China for the first Some members of the Indian team worked in the US,
week to kick off the project. China was chosen to host while US team members worked in India. Not only
this kickoff since the majority of the team was located were these team members able to share their
there. Fewer people were required to travel, cutting knowledge of the application and development
down on visa applications and travel costs. This face- practices, but they also provided cultural context to the
to-face kickoff gave us an opportunity to meet each other team and were able to provide remote
other, establish a rapport, and understand the project introductions to teammates.
together. By the time the team separated to their When planning for project visits and rotations, I
different locations, they all knew each other, were found it was not only important to budget and time
comfortable phoning each other, and felt like part of these carefully, but it was also important to understand
the same team. the different visa requirements for citizens of different
The client team was unable to attend the kickoff in countries. We found that visas for Indians to the US
China. They went to visit our China office several took extra time and planning. One of our greatest
weeks into the project. Prior to the visit, there had surprises came from Project Dragon, this being one of
been certain individuals that the client had used as his our earlier projects in China. It turns out there is a limit
go-to people. Immediately after meeting the team face- on how many Hong Kong visas a Chinese company
to-face, the client became much more trusting, much can apply for annually. Realizing this earlier in the
more engaged and much more willing to work with the project would have given us an opportunity to plan our
entire team. visits and rotations more strategically.
On Project Mammoth, we did not have the
opportunity to bring everyone together because it 3.2. Sharing Progress
would have been much too costly. Instead, we set up
and budgeted for a schedule of exchanges from India to One of the most frequently-asked questions on a
the US and vice versa. At the start of the release, we distributed Agile project is, “What has the other part of
sent a team lead and some of our senior the team been working on?” On a co-located project,
developer/architects over to the US to plan the release information is normally communicated during a daily
with the product owners and client. These team standup and, at a higher level, the iteration planning
members were well trusted by the Indian team – so meetings and showcases. With a distributed agile team,
although not everyone on the Indian team had an I have experienced a few different ways to successfully
opportunity to participate in person, they all felt that communicate progress and activities.
they were well represented, that their concerns were On Project Dragon, where everyone was working in
heard, and that they could contribute via their the same time zone, we were fortunate to be able to
representatives. The whole team (US and India) found hold a conference call standup. The teams in the
that the release was much more successful due to the different locations found it a better use to hold their
investment made in travel at that point. own stand up meeting, with the joint one held every
Throughout the release, we scheduled visits for our second day. This provided them with enough
US product managers and team leads to the Indian information from the other part of the team to continue
office. The idea of this was to provide easy transfer of working without spending unnecessary time on phone
domain knowledge to business analysts, developers, calls.
and quality analysts in India. An amazing by-product As a general rule, if the team is too large to hold a
was that visitors to the Indian office invariably came conference call standup, then some sort of daily
away with a better understanding of the environment. handoff is necessary. When the conference call
After visiting the office, they often started scheduling becomes too long, team members stop attending or
calls at different times, found ways to limit the number participants lose focus during the call. In India on
of calls and, most significantly, changed their tone of Project Mammoth, with over 60 people on the project
communication. Their awareness of the commitment site at any time, a standup was impossible. The
and dedication of the Indian team increased, and they leadership team did find it necessary to hold a daily
understood the personal sacrifices everyone was handoff phone call at the end of the Indian workday.
making for the project. A reciprocal understanding also To allow Indian team leads to have some personal time

328
in the evenings, the team rotated participation in these the discussion on specific issues during our limited
calls, each covering off for another. Late in the phone time.
afternoon, the team lead who would not be attending
would prepare his or her updates, questions, etc and 3.4. Communicating Requirements – Writing
then share that information with a team lead who Less
would be speaking on his behalf. This had the added
benefit of providing coverage when team leads were on In contrast to ensuring that messaging, progress
vacation or out of the office as much of their updates, and issues are well documented and written
knowledge and responsibilities had already been out, it has been my experience that relying too heavily
shared with others. on written requirements as a means of communicating
business needs can lead to extra work or confusion. A
3.3. Getting the Message Across – Writing user story is supposed to be a starting point for a
More conversation, a nuance that can get lost on distributed
agile projects.
One of the biggest challenges I have experienced When working in the US on Project Cub, the US
with communication on distributed projects is ensuring analysts went through considerable effort to construct a
that important messages are properly communicated to user story template, write detailed narratives, and
the team members in the other location. document all acceptance criteria. The painstaking
As a member of the offshore team in India, I often effort was extremely thorough and time-consuming for
had to send reports and updates to our stakeholders the first two iterations. Still, with each user story sent
onshore. Because I was often unavailable when these to the offshore team there was a series of questions
reports were read by stakeholders, it was important that asked that took several days to completely answer.
messages were conveyed clearly with little room for (With the time difference, there was often a 24-hour
interpretation. When creating these reports, I would turnaround.) The onshore team later realized that the
try to take on the persona of the most difficult team in India was struggling to understand the US
stakeholder; after adding an item to the report, I would business.
ask myself, “What is the first question he is going to The team explored other techniques to provide the
ask?” and ensure that the answer to that question was context required for the user stories. Through a video
highlighted in the report as well. Early on, a lot of this conference, one of the onshore analysts took the
was guessing, but over time as I began to understand offshore team through the higher vision of the
his motivations (budget and customer satisfaction) it application to give them some context of what they
became easier for me to assume that persona and read were working on. Until that time, the team had only
the reports through his eyes. seen requirements story by story and could not
Most distributed projects schedule conference calls understand the direction being taken. On other projects,
to pass on important messages to the distributed team – I have seen different techniques used to describe
such as a change in budget, organizational changes, or requirements. One team had a local installation of the
items that may impact the project. One of the most application being replaced, and another team had video
valuable techniques I learned came from a US recorded several domain sessions delivered by subject
colleague on my project. He always ensured that when matter experts. These were available when on-
delivering a message verbally he also included a boarding new team members or when tackling a new
written version of the message, usually as a part of the domain. I have also seen wireframes and
PowerPoint. Often, we would not even use the lo-fi prototypes used effectively to communicate
PowerPoint during the conference call, but it was an requirements.
artifact that could later be read to clarify the message
with team members who could not hear the call clearly, 4. Anticipating the Overhead
were not present at the time, or required clarification
on the exact messaging. Creating a written form of the There are many reasons to distribute an Agile
message prior to a conference call also had the benefit project. As with my three examples, staffing and cost
of providing the messenger with an opportunity to commonly drive the decision – staffing may not be
collect and organize his thoughts. We took this available in one location, offshore resources are often
technique a step further and made sure that all project less expensive than onshore ones. When weighing the
artifacts, wikis, and tracking tools were up-to-date cost benefits of a distributed agile project, one must
prior to a status call. This reduced the number of also consider the significant overhead that does not
questions asked during calls and allowed us to focus

329
exist on co-located projects and which is often budgetary lesson – consider the costs of providing
overlooked when planning distributed work. team members with the tools they will need to work
from remote locations, such as internet installation at
4.1. Hardware and Infrastructure Overhead home, headsets, and VOIP credits to call landlines.

On my first project between India and the US, 4.2. Planning Work, Schedules and
Project Mammoth, there was a 12-hour time difference Contingency
between the two. Everyone had to adjust their
schedules. We had initially assumed that the Indian I have learned to plan for more disruptions to
team could use desktop computers at the schedules on distributed agile projects, usually through
ThoughtWorks. It quickly became apparent that the additional contingency. Expect a project may take
Indian team – in particular the business analysts and longer than estimated, and expect shifts in velocity
team leads – needed laptops so they could work from from time to time.
home, Emails needed to be answered in evenings and All countries have different public holidays. The
conference calls were scheduled at odd hours to help us impact of these can be significant on a distributed agile
maintain the level of communication required for agile project if not accounted for. I experienced this at the
projects. outset on Project Dragon when Hong Kong had a
Although not within the project’s budget, we public holiday. It was early in the project – a time
arranged to supply laptops for all who needed them. when the team in China had a lot of questions for the
While a desktop computer was completely adequate for client in Hong Kong, was still trying to understand the
a co-located project where everyone worked from the domain, and expected a lot of feedback in a very short
office (and was in fact more powerful than the laptops timeframe. All of a sudden, the client was unavailable
available), it was insufficient for a distributed project. while the team was still expected to be productive in
Additional hardware (such as laptops and cell phones) our China office. While this was only a brief
is necessary to provide people the flexibility they need interruption, at such a critical point in the project its
to do their work on international schedules. The costs disruption was greatly magnified.
for this should be accounted for in initial planning. Beyond public holidays, understanding and
Providing the team with laptops illustrated two anticipating vacation schedules is also key to planning
additional points that need to be considered when for the overhead on a distributed agile project. In
planning distributed agile projects. Living in North North America, many people plan vacations for the
America, I am used to very rapid procurement cycles. summer months. As a project manager, I know to
I can usually order hardware and receive it within a expect and plan for this. While working on Project
matter of days. I can also simply go to an electronics Mammoth in India, I found that many team members
shop, pick up what I need, and begin using it scheduled their vacations between April and June, a
immediately. time when many weddings are held but not a time
Different countries have different procurement during which Westerners would anticipate many
cycles and even different legislative requirements for absences. Our well-oiled distributed agile machine
office hardware. The laptops we ordered in India took broke down when this happened.
several weeks longer to deliver than I was expecting, We had built a team that had an excellent balance of
and when they arrived they were locked in a room until skills and knowledge spread over two regions, and as
they had been legally bonded to the company. It was long as everyone was at work, it worked at a steady
incredibly frustrating for the entire team to be able to pace. Suddenly, there were uncommunicated and
see stacks of brand new computers sitting unused in a substantial changes in people’s availability in India that
room for a few weeks. Understanding these upset the normal ratio of roles across the project.
requirements and the time it will take to procure Different bottlenecks would appear when different
specific hardware has become something I look at on team populations were away. While analysts in the US
all projects and build into my plan early in the project. were still writing stories and SMEs were acceptance
The second lesson I learned when ThoughtWorks testing, defects were building up and specific stories
provided the team with laptops was that I had were not being picked up. The Indian teams which had
overestimated infrastructure available to team been resolving the majority of defects were largely out
members. While team members now had laptops so on vacation. Similarly, developers in India having
they could work in the evenings to discuss issues with specific expertise were temporarily unavailable to pair
the client in the US, some were actually having to go to with those less familiar, resulting in certain stories
internet cafes or places with wireless access to do this
because their homes did not have internet. Again a

330
waiting in the queue despite their business or tactical commitment to extra-curricular activities, etc. When
priority living in India, I remember the day the US changed
Building a team calendar that incorporates all public their clocks ahead for daylight saving time – our team
holidays as well as timings of different customs has all celebrated because we were able to go home an
helped me better plan for the extra duration that may hour earlier each day.
be required for a distributed agile project. It also gives Before embarking on any distributed agile project, I
the team visibility into where they may have to plan a now ensure that all team members understand the
bit in advance. Examples are ensuring that all different work schedule they may need to assume, the
information has been gathered from a subject matter level of communication that will be required with the
expert before that office has a public holiday, planning other team, and the availability they may be expected
for changes in velocity due to vacations, scheduling to have.
more technical tasks at certain periods, and
understanding that there will be fluctuations in the 5. Building a Common Understanding
level of work completed by different locations. I have (‘Sure, We Do Agile’)
had to ensure I do not create a team calendar in
isolation – I involve individuals who would know When I worked with Project Cub, there was one
specifics about culture and customs, such as a member thing we forgot to consider: the time it would take to
from human resources or members of other project agree on agile terms and practices. When working on a
teams. co-located team, this agreement evolves over time and
There were events that I could not plan for that also comes naturally through discussion.
impacted the team. I have learned that distributed agile We had assumed that the team in India was
projects often require a bit more contingency in their practicing agile the same way we were planning on
budgets. One week, the team in the US was snowed in. doing it in the US. It was several days into the first
Most people could not make it to work and operations iteration before we realized that each location had a
shut down. Three weeks later in India, there was a different version of ‘agile’. As a member of the US
power outage affecting the team there. Both were team, I had little visibility into the day-to-day
unplanned events, and we had not thought through operations of the team in India. To build a common
what one team would do when the other was understanding of the practices we were using, we
unavailable. These were two separate events happening started by having each team prepare a presentation on
in two different locations; however each region felt the ‘a day in the life’ of their team. This became a starting
impact, doubling the cost. point for discussions about what the teams were doing
One of the most costly types of overhead I have differently and how we wanted to change things. For
seen on distributed agile projects is the personal example, the US team was trying to practice test-driven
sacrifice and investment team members must make development, whereas the India team was having a
when different time zones are involved. This is team member write the unit tests.
amplified as the time zones get further and further Once we had acknowledged that there were
apart. Agile requires a much higher level of differences in terminology and implementation of
communication than traditional software projects. practices, the team was open to exploring the different
While working on both projects between India and the techniques locations were using and selected the
US, I found myself and other team members attending practices they wanted to use. We set up a wiki page to
calls late at night and early in the morning to sync up capture a glossary of terms, books we were
with people in the other region. In India, I would often referencing, and how we were using different practices.
be at work by 8am to speak to the team in the US When starting a distributed project, I no longer
before they left for the day, and then speaking to them make the assumption everyone will understand the
again at 8pm before going home at night. same flavor of agile. Though not unique to distributed
The team in India also adjusted their work projects, the problem of diverging methodology is
schedules to allow for more overlap with their exacerbated by distance. It is harder to know what
counterparts and clients in the US, starting their day at people are doing so it may take longer to realize
10am and staying later to be available when the US different teams have different understandings of the
team started work. While on a distributed project in the same terms. Any project involving new team members
US, it was not uncommon for me to be on a conference requires scheduled time to ensure all participants agree
call for an iteration planning meeting at 9pm. The on and understand the agile practices that will be used
personal cost is high due to different working hours. on that project. I get the team to share different
Distributed agile projects can affect the amount if time templates and artifacts with each other from prior
team members can spend with their families, their

331
projects, we then select as a group the ones we will use
for our project.

6. Conclusions
There is a lot more to consider when embarking on
a distributed agile project than simple cost savings.
Careful consideration must be taken to ensure activities
like travel, contingency, and personal commitment are
thought through and planned for. Agile’s fundamental
principles of face-to-face communication and close
collaboration are hampered on a distributed project.
These deficits must be consciously addressed through
activities such as more formalized communication,
practices discussions, and different means of
expressing requirements.

7. Acknowledgements
I would like to thank all my ThoughtWorks
teammates everywhere who have shared their lessons,
gone through some tough times with me, and had fun
along the way. Thanks all offshore individuals for
your hospitality and openness when I visited. Specific
thanks to Mark Rickmeier for bottomless energy and
great ideas, Andy Yates for shared experiences, and
Angela Martin for encouragement, and Martin
Andersen for being my constant sounding board.

332

You might also like