Boost the utilization of your HCL environment by reevaluating use cases and f...
ETPM2
1.
2. Project Management National Conference 2011 PMI India
Succeeding in Distributed Agile
Project Management – Challenges
and Best Practices
Rathinakumar Balasubramanian.
PMP, FLMI
Principal, Infosys
2|P a g e
Application of Select Tools of Psychology for Effective Project Management
3. Project Management National Conference 2011 PMI India
Contents
1 Introduction........................................................................................................................4
2 Content...............................................................................................................................4
2.1 Agile Project Management..............................................................................................4
2.2 Agile Projects - the need of the hour...............................................................................5
2.3 Distributed Teams – the Hobson’s choice.......................................................................5
2.4 Distributed Agile Projects – a reality check....................................................................6
2.5 Challenges in Distributed Agile Projects........................................................................7
2.5.1 Erosion of trust.............................................................................................................8
2.5.2 Communication breakdown.........................................................................................8
2.5.3 Lack of infrastructure...................................................................................................8
2.5.4 Fear of failure...............................................................................................................8
2.6 Succeeding in Distributed Agile Projects – Best Practices.............................................9
2.6.1 People – Best Practices..............................................................................................10
2.6.2 Infrastructure – Best Practices....................................................................................11
2.6.3 Communication – Best Practices................................................................................12
2.6.4 Structure – Best Practices...........................................................................................13
3 Conclusion........................................................................................................................15
4 Definitions, Abbreviation and Acronyms........................................................................15
5 References........................................................................................................................15
6 Author’s Profile................................................................................................................15
3|P a g e
Application of Select Tools of Psychology for Effective Project Management
4. 1 Introduction
“The State of Agile Survey 2010”, conducted by VersionOne [1] shows that the
agile adoption is clearly on the rise. As per the survey, 90% of respondents
worked in organizations that used agile development practices to some degree.
The survey indicates that about half of projects in respondents’ companies use
agile methods. At the same time, the hunt for global talents is a key strategic
tool to be competitive in the global market. With increasing popularity of Agile
practices and availability of the talents spread across the globe it is natural that
“Distributed Agile Development Projects” are being increasing adopted.
These two trends Agile Project Management and Distributed Team pose new
challenges. Both these ideas evolved from seeming contradictory elements.
There are inherently incompatible aspects between Agile Projects and
Distributed Teams. This paper answers the question - is there a common ground
where Agile and Distributed delivery can hope to reach and share a symbiotic
relationship? This paper ‘Succeeding in Distributed Agile Project Management –
Challenges and Best Practices’ provides a practical framework of best practices
to address the inherent challenges in Distributed Agile Projects.
2 Content
2.1 Agile Project Management
Agile Project Management refers to the software development principles and
practices that follow core agile tenets as prescribed in the Agile Manifesto [2].
Manifesto for Agile Software Development declares the priorities in the following
way:
• Individuals and interactions over processes and tools
• Working software over comprehensive documentation
• Customer collaboration over contract negotiation
• Responding to change over following a plan
Agile Manifesto clearly values the items on the first part of each statement more
than the items on the second part.
The most common agile methodologies employed are Scrum, Extreme
Programming, Feature-Driven Development, and Adaptive Software
5. Development. Other methodologies like Custom Hybrid, Scrum/XP hybrid, Lean,
Scrumban, and Agileup are also follow the agile principles and practices.
2.2 Agile Projects - the need of the hour
Current global business environment demands faster time to market to remain in
competition. The ability to respond to changes is a prerequisite to remain in
business.
As per the survey [1], top 3 reasons for adopting agile are:
1. Accelerate Time to Market
2. Enhance Ability to Manage Changing Priorities
3. Increase Productivity
87% of the respondents said implementing agile either improved or significantly
improved their ability to manage changing priorities. 70% of the respondents
reported that agile projects showed either improved or significantly improved time
to market. 66% of the respondents felt that agile projects were faster to
completion than previous non-agile ones. 22% of respondents reported that they
had not experienced a failed agile project.
Agile practices address the changing needs of the business more than the
traditional models. Rapidly changing products features and crushed innovative
cycles are a reality today. There seems to be no better solution than Agile
Projects and Agile Practices to these issues. In short, Agile is the need of the
hour.
2.3 Distributed Teams – the Hobson’s choice
Distributed teams refer to the project teams who execute projects from different
physical locations – in other words, all the members of the project team are not
co-located. The distributed team can actually span across different geographical
locations like US, UK and India.
Today, projects are increasingly executed in distributed mode. At macro-level,
there 2 major factors that lead to more distributed teams: Globalized Businesses
and Outsourcing as a strategic advantage.
a) Globalized businesses:
6. Most of the businesses are gaining global footprints. Expanding into
newer markets through partnership, merger and acquisitions are the order
of the day. This has resulted in business operations at global scale. To
manage businesses at global scale, it is imperative that global talents are
sourced from wherever they are.
b) Outsourcing – a strategic advantage:
The primary motivation for early outsourcing was cost savings. But it is not
the only driver for outsourcing. Today outsourcing has emerged as a
strategic tool to build or maintain competitive advantage. Other reasons
like 24/7 support, multi-lingual services, work-life balance also play a role
in making distributed teams a reality.
There are no second thoughts that distributed teams are and will be the only way
global projects will be executed going forward.
2.4 Distributed Agile Projects – a reality check
Distributed agile projects are the culmination of executing agile projects using
distributed team. As per the survey [1], 45% of respondents were currently using
or plan to use agile methods on outsourced projects. This is an indication that
more and more agile projects are moving to the distributed execution mode.
But the contradictions between the core tenets of the agile project management
and the distributed development are quite apparent. The very nature of
distributed teams seemingly defeats the core of agile projects. Table-1
juxtaposes the incompatible elements between agile projects and distributed
team. The compatibility factor of distributed team can either supplement or
weaken the agility.
7. COMPATIBILITY
AGILE PROJECTS DISTRIBUTED TEAMS
[supplements/weakens agility]
Team Co-located Team Distributed Weakens agility
Documentation and
Face-to-Face Communication Weakens agility
Voice
People Focused Process Focused Weakens agility
Change-Driven Plan-Driven Weakens agility
Periodic Customer
Close Customer Collaboration Weakens agility
Collaboration
Thrives on Trust Lack of Trust Weakens agility
Table-1 How compatible agile projects and distributed teams are?
As depicted in Table-1, the distributed agile projects are riddled with inherent
incompatibilities. Succeeding in distributed agile projects requires meticulous
planning and painstaking effort. This paper reviews the challenges in executing
distributed agile projects and provides a practical framework of best practices to
overcome those challenges and succeed in distributed agile projects.
2.5 Challenges in Distributed Agile Projects
There are numerous challenges that accompany any distributed agile projects.
The key challenges in distributed agile projects can be categorized into 4 major
sources (or risk factors). Figure-1 illustrates the four major sources of
challenges. They are
1. Erosion of Trust – lack of team morale and motivation
2. Communication Barrier – result of distribution
3. Lack of infrastructure to mimic co-location
4. Fear of failure of agile in distributed mode.
8. Figure-1 Distributed Agile – Risk Factors
2.5.1 Erosion of trust
Due to the distributed teams, the agile projects may suffer erosion of trust among
the team members. This can lead to team morale/ motivation issues. Distributed
agile teams are typically not seen working in unison. Cultural differences add to
the complexity.
2.5.2 Communication breakdown
Since the teams are distributed, they lose the opportunity to experience a high-
context, intensive communication which is the core of agile methodology. Time
zone differences and non-availability of forums to collaborate may add to the
communication hurdles.
2.5.3 Lack of infrastructure
Co-location brings in benefits that can never be matched by distributed team.
Many a times, lack of proper infrastructure – both physical and technical will pave
way for challenges that can eventually jeopardize the success of distributed agile
projects. Having proper infrastructure leads to confidence of the team to
overcome the trust deficit and communication collapse.
2.5.4 Fear of failure
Another huge challenge is the fear of failure to address the unknown areas while
executing distributed agile projects. The unknown areas in distributed agile
projects could be fundamental questions like which agile methods is best suited
for me or how to move to distributed agile from co-location agile. The unknowns
9. could be procedural problems like how to transfer knowledge to new members;
how to coach and bring newly inducted people up to the speed and how to
ensure that all the team members across remote locations follow uniform code or
practice. All these puzzles need to be solved along the way to succeed in the
distributed agile projects.
2.6 Succeeding in Distributed Agile Projects – Best
Practices
The essence of this whitepaper is the set of best practices arranged into four key
areas - People, Infrastructure, Communication and Structure. This four-pronged
framework comprising of People, Infrastructure, Communication and Structure
(P-I-C-S) is illustrated in Figure-2. The P-I-C-S framework can be a systematic
tool to support the project managers in addressing the challenges of distributed
agile projects.
DISTRIBUTED AGILE
PROJECT MANAGEMENT
Figure-2 Distributed Agile – Best Practices “P-I-C-S” Framework
10. 2.6.1 People – Best Practices
1. Build trust through Leadership:
Leadership is the key to the success of distributed agile projects. In a distributed
agile team, technical talent, domain expertise, high-quality project management
skills do not deliver when leadership fails. The role of an agile coach (or scrum
master) is of a leader who can build trust with the team. A very experienced agile
coach with excellent people skills and leadership can make the difference
between a success and a struggle. It is imperative to find someone who can
steer through the misgivings due to distance and develop team relationship.
2. Maintain Transparency:
Transparency is the sine qua non to a smooth functioning distributed team. It is
necessary that the roles and responsibilities of the agile team is clearly defined
and explained. An agile team has well-defined roles including product manager,
agile coach, developers, testers and SMEs. Ensuring that everyone in the agile
team irrespective of the location they work from, need to understand and respect
the roles and responsibilities. The responsibilities should matter far more than
the job titles or positions. Transparency in communicating status and in sharing
information will ensure another step towards success of distributed agile projects.
3. Build a high-performance agile team:
Building a high-performance agile team requires meticulous planning. Invest in
team building. Plan frequent team building exercises at all project locations.
Select people with right attitude who can withstand the hardships of distributed
teams over pure technical skills. Separate the team by functionality not activity.
This brings in one-team feeling. It is necessary that an agile team performs
against all odds created due to distribution.
11. 4. Sensitize on cultural differences:
Create training budgets for focused trainings on cultural sensitivity and
communication across cultures. The role of cultural differences becomes highly-
visible when the team is distributed across geography and cultures. Create an
environment of mutual respect to individuals and cultures.
2.6.2 Infrastructure – Best Practices
1. Invest in high-quality infrastructure:
Make necessary investments in providing the team with high-quality technical
and physical infrastructure. A “Team Room” with virtual private networks (high-
bandwidth connectivity) is much appreciated. Install remote screen sharing
software and Instant Messaging (IM) software, using which the team can share
information seamlessly. Providing speaker phones, headsets and webcams are
must. Voice conferencing with a project or better Videoconferencing facility will
only improve the communication.
2. Establish continuous build and integration practices:
The significance of establishing continuous build and continuous integration is
that tiny build and integration issues are never allowed to get accumulated and
never left to be solved at the end. The key is to create an automated build
system and integration system that can deploy the software into pre-production
environment. It is recommended that an agile project with remote teams to
appoint a full-time integration as a distinct role.
3. Take advantage of Web 2.0:
12. The advent of Web 2.0 is a boon to distributed agile project management. Create
“virtual agile project community” that can massively lift the intensity of the
communication among the remote teams. These “agile project communities” use
private social networking capabilities of the Web 2.0 tools to their advantages.
Provide access to Wiki for the project team. Making Wiki as the platform for
communication for the entire team will greatly boost the communication and
foster team cohesiveness across remote teams.
4. Consider Cloud computing:
Cloud computing is bringing in a whale of change in the way software
development is done. Cloud refers to on-demand resources that can be shared
across teams which manage development and have traceability across projects.
Due to the on-demand availability of resources and sharing of information
instantaneously across the remote teams, cloud naturally prevents factors that
inhibit high communications. Setting up a virtual private cloud will be a great step
forward towards a successful distributed agile team. While considering cloud,
addressing the security concerns of your organization is critical. Once
addressed, cloud becomes a natural choice for distributed agile development.
2.6.3 Communication – Best Practices
1. Embed collaboration in work:
Embed the need for collaboration in the work itself. Classical examples for
embedding collaboration in work are ‘test driven development’ and ‘collective
code ownership’. Test driven development breaks away communication
barriers by ensuring that test cases as the communication drivers.
Communication grows and collaboration happens around the test cases. Having
collective code ownership encourages changing the code by different teams but
brings in the trust factors which can happen through high level of communication.
13. 2. Reward collaboration and communication:
Reward behaviors that foster collaboration. Encourage people to brainstorm
across locations. Planning rewards like “collaboration champion of the month”
and “contributors” for high-impact communication are not just fun way but a sure-
fire way to improve collaboration and communication in distributed agile projects.
3. Simulate co-location:
Crate virtual war-rooms. Ensure that the team does not feel the remoteness or
separation due to distribution. Minimizing the impact of distribution by mimicking
or simulating co-location is another great way to ensure that distributed team
performs effectively. Post team photos in all the locations. Have frequent video
calls. Ensure required minimum overlap work time.
4. Plan travels and rotations:
Plan and budget team travels as part of project budget. Plan to co-locate the
team for the first couple of iterations. This may involve travelling of team
members to one location – “base camp”. Get the team together at the last
couple of iteration may also be planned, thought this is not mandatory.
Plan and communicate rotations of key people to different locations. These key
people play the role of “agile ambassadors” ensuring that common culture
prevails across locations by bridging the gaps and passing on good practices to
other locations.
2.6.4 Structure – Best Practices
1. Establish a working agile practice:
14. Establishing a working agile model is one of the most critical aspects of
succeeding in distributed agile projects. Choose what works best for your
organization – Scrum or Extreme programming or a hybrid model. If you are new
to agile or new to distributed model, take one step at a time. Figure-3 explains
the step-by-step progression to reach distributed agile mode. Moving to
distributed agile in one-go may lead to failure in most of the cases.
Figure-3 Step-by-step progression to Distributed Agile mode
2. Adopt light-weight processes:
Agile teams often do not believe in producing formal artifacts, detailed
documentations like functional specifications, design documents, coding
guidelines etc. In order to ensure that new team members who are in remote
locations can quickly scale up, it is necessary to adopt light-weight processes
and documentations like wikis. This helps in quick team ramp-ups and also
helps in ensuring uniform practices across locations.
3. Standardize work protocols:
Having standard work protocols greatly aids in improving high-performance. For
example, have a “core hour” or “holy hour” for the team when everyone from all
the locations will participate in a meeting. Ensuring that every new member in
the team goes through the ‘base-camp” is another example of protocol that helps
reducing the impact of distribution.
4. Keep the structure flexible:
Keep the distributed agile structure flexible. Be receptive to what the team says.
Be ready to change based on what your experience shows. Keeping the
structure flexible will naturally lead to a model, protocols that works which is
unique for your organization.
15. 3 Conclusion
It is possible to succeed in distributed agile projects. But it takes a lot of effort to
make it successful. The set of best practices (P-I-C-S framework) shared in this
white paper, is of immense help to anyone who is executing distributed agile
projects. The P-I-C-S framework can provide a systematic approach to choose
the right tools to address the potential challenges in executing distributed agile
projects. Again there is no substitute for a co-located agile team when it comes
to agility, effectiveness and high-performance of the team. A distributed agile
team can be a substitute with an understanding that there are trade-offs in terms
of reduced agility in the short term. Nonetheless, in the long run with sustained
efforts and application of best practices a distributed agile team can match the
performance of a co-located agile team. Analyzing the need for distributed agile
projects, assessing the impact of going for a distributed agile team, choosing
distribution of agile only when it is required, and finally taking proactive steps to
minimize the impacts of distribution are the stepping stones for succeeding in
distributed agile project management.
4 Definitions, Abbreviation and Acronyms
Acronym Description
SME Subject Matter Experts
5 References
Item Description
1 http://www.versionone.com/pdf/2010_state_of_agile_development_survey_results.pd
f
2 www.agilemanifesto.org
6 Author’s Profile
16. Rathinakumar Balasubramanian has 14.5 years of experience in
Information Technology in managerial and functional capacities. He has
managed large projects, programs and accounts for several Fortune 100
companies in USA, UK, and Singapore. His expertises include project
management, product management and people leadership.
He is a certified Project Management Professional (PMP) from 2004. His
passion includes teaching and mentoring. He is a regular contributor to
PMI Bangalore Chapter. He has received ‘Gold Star Contributor’ award
from PMI Bangalore Chapter for 4 years from 2006 to 2010 for his
contribution in the area of Education and Training. His other interest
areas include leadership, learning and development and business ethics.
He is currently working with Infosys Ltd.
Rathinakumar_b@infosys.com