Professional Documents
Culture Documents
Practical Considerations For Distributed Agile Projects
Practical Considerations For Distributed Agile Projects
Jane M. Robarts
ThoughtWorks Canada
janerobarts@gmail.com
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