presentation by somdatta banerjee
TRANSCRIPT
Page | 1
Mantra for Process Excellence
Somdatta BanerjeeService Quality Consultant-DevelopmentCognizant Technology Solutions
Software Project Management: Distributed Agile Approach
Mantra for Process Excellence-Approaches in Project Management Processes to ensure improvements
in Agility, Predictability, and Productivity,quantitatively proven, and repeatable across different industries
or organizations.
Keywords:Application lifecycle management (ALM),JIRA,Team Foundation Server (TFS),Poker
Play,Distributed Agile
Abstract: Project Management by definition is a set of techniques or practices applied for a project to
meet its objectives. Successful Project Management is to capture and understand the maximum detail of
customer requisites during project initiation,thereby avoiding changes during the execution stage that will
impact schedule, cost and quality. Classical theories suggest that Agile projects work best when the size
of the team is relatively small and the entire team is co-located. However organizations tend to execute
projects that fall outside this agile principle; large, complex, and geographically dispersed team appears
to be the norm. Does this reality make agile adoption difficult? There is a perception in line with agile
principle that distributed agile cannot work successfully. Some of the key challenges being:
Communication• Knowledge sharing• Cultural differences Despite such real and perceived challenges in
implementing agile with geographically distributed teams, it has often been successful and has created
significant value. Distributed Agile is adopted in many projects in search for right skillset. Also working in
different time zones increases the project productivity.
The objective of this paper is to highlight the empirical experience in few distributed development projects
where the agile methodology has been implemented successfully by deploying certain project
management techniques involving skill-set mapping, automation using ALM suite etc. The business
benefits accrued from this project executed from 5 locations using7 different technologies, head count of
150+ associates are mentioned below:
5%-10% improvement in project velocity
Shorter defect turnaround
Faster time to market
Page | 2
Table of Contents
Introduction................................................................................................................................................2
Evolutions of Agile:...............................................................................................................................3
Types of Agile:.......................................................................................................................................4
Adoption Challenges:...........................................................................................................................4
Hopeful Aspect:.....................................................................................................................................5
Agile Adoption:..........................................................................................................................................5
Cognizant Experience:.........................................................................................................................5
Scenario1:..............................................................................................................................................5
Problem Statement:..............................................................................................................................6
Solution:.................................................................................................................................................6
Project organization:.............................................................................................................................6
Initial Challenges and Best Practices adopted for seamless execution:.......................................6
Scenario 2:.............................................................................................................................................9
Problem Statement:..............................................................................................................................9
Solution:.................................................................................................................................................9
Project organization:.............................................................................................................................9
Initial Challenges and Best Practices adopted for seamless execution:.......................................9
Quantitative Benefits:.........................................................................................................................12
Conclusion:..............................................................................................................................................14
Reference:...............................................................................................................................................14
Page | 3
Introduction
Evolutions of Agile:
Agile development practice has been around for some time and isnow a globally accepted phenomenon.It
is rapidly becoming most preferred IT methodologyacross the globe.There is a sudden need for projects
to add as much value as possible in the shortest time span, and who else but agile can be the knight in
shining armor during the troubled times.. Because of increasing competition and business compulsions,
organizations are forced to bring in products and services faster to the market. Also there is a need for
improving efficiencies to stay relevant in the market. This has a bearing on the various IT programs that
get executed as well. For instance, a Travel company would want to offer more features online at a faster
pace to compete effectively or face a loss of revenue. Also the relevance of certain offerings could
diminish over a period of time. Hence it is imperative that IT departments of organizations target quick
releases of features required by business on an ongoing basis. Hence agile approach is becoming
increasingly popular to address the business needs.
Agile methodologies intend to allow system requirements to change during development, and welcome
this change through frequent communication and interactions. A detailed and complete plan upfront
demands a complete knowledge about all aspects of the application(s) under development and it’s
interactions with the environment. agilepractitioner considers it a better approach to elicit the details within
development lifecycle and allow changes to the architecture while the fundamental understanding grows.
The below table provide a comparison of traditional and agile development:
Traditional(Waterfall)
Methodology
Agile
Methodology
Fundamental
Assumptions
Systems are fullyspecifiable,
predictable andcan be built
through
meticulous and
extensiveplanning.
High-quality, adaptive software can be
developed
by small teams using theprinciples of
continuous
design improvement andtesting based on rapid
feedback and change
Control Process centric People centric
Knowledge
Management
Explicit Tacit
Communication Formal Informal
Customer’s Participation Important Critical
Technology No restriction Favors object-orientedtechnology
Page | 4
Types of Agile:
There are number of agile development methods widely used today. Some popular agile techniques are
Scrum, Extreme Programming, Crystal, Adaptive Software Development, Lean Software
Development,Feature-driven Development (FDD).
The scope of this paper is restricted only to Scrum methodology.
Figure 1: Type of Agile
Figure 2: Scrum framework
Adoption Challenges:
Small projects working successfully with agile are a fact today and this is due to the very nature of the
methodology. Is this the same scenario with large and complex projects working with teams spread
across the globe?
Due to the interactive and collaborative approach ingrained in the very essence of agile, success of agile
in a distributed team is a big question.Also,agile approach initially involved experts working together in
Page | 5
small teams. The reality in service organizations is that we have relatively less experienced individuals
forming a larger part of the team and need to coordinate across geographies to delivery on customer
tasks.
Scalability is a major challenge inagile methodology. Let’s take an example of team of more than 100
people executing projects with multiple technologies. The skill levels of the team are different, each unit is
highly dependent on the other and it takes around 3 months to deploy major releases. If the complexity
seems to be medium, let’s consider that this project is distributed globally with more than 5 locations for
execution. As a Project Managerwill you embrace agile for the successful execution of the project?
Considering classical agile principles this won’t work. With the individuals sitting virtually on the opposite
sites of globe, interaction is the key challenge. Mails and forums do work but there is always abig time
lag. With multiple vendors the situation becomes even more critical since each have their own processes,
service level agreements and tools.
Hopeful Aspect:
Considering the adoption challenges, does this mean that large and complex projects distributed across
globewill never consideragile for their software methodology? The answer would be“No”.This paper will
discuss our experience whiledeploying agile methodology for complex projects in a distributed
development environment and institutionalizing agile as an organizational process. We will also talk about
a few real life case studies and best practices where distributedagile has been successfully implemented.
Agile Adoption:
CognizantExperience:
Our experience shows that agile methodologies, in their out-of-the-box form, are not meant for every
project. For example: if your business model demands a strict hierarchical organizational structure or if a
certain project has totally static requirements, agile adoption may either fail or not show any value over a
traditional models.
Scenario1:
Let us consider the case for a project involved in development of innovative booking solution that delivers
multisource content and pricing through a single, unified yet powerful platform.
Page | 6
The technology stacks includes.NET 4.0, WPF, WCF, SQL CE 4.0. The scope involves a web based
trip/itinerary management tool with an easy to use itinerary eCommerce solution. The client for this project
intends to build a new, single solution product line which can be offered their customers.
Problem Statement:
Using the traditional waterfall methodology the client was able to achieve maximum 2 releases per year
for their client. Even such delivered releases had product quality issues due to higher volume of defects
identified by theend users (our client’s customers). Therefore, the client was looking for a better solution
with lower product quality issues and wouldresult in faster time to market.
Solution:
Adopting distributed agile has suited the team to the fullest extent. Let us take a closer look on the
scenario and adoption of distributed agile.
Project organization:
There are around 70+ resources working in the project. The project is working from 4 different
geographical locations namely Denver, Atlanta, Kolkata and Bangalore. The Product Owner and Business
Analyst are from Denver, the Scrum master and Architect is from Atlanta and development team works
from Kolkata and Bangalore. Each sprint is for 2 weeks duration that includes sprint planning (grooming
session), story estimation, development and QA testing. Each release, in turn comprises of 2 sprints with
1 week of stabilization period. The duration for a release is 6 weeks.
Agile specific roles such as Product Owner, Business Analyst, Architect, Scrum Master, scrum team etc.
are well defined with appropriate responsibilities assigned to each and every member in the team.
Some of the tools used in the project are JIRA for story tracking, ALM for defect tracking, TFS code
review tracking, build management and as code repository, Poker Play for estimation etc.
Classical agile best practices such as daily stand-up calls (15 mins), well-defined product back-log, no
sprint backlog, well-defined definition of done (DoD), sprint-end / release-end retrospection, continuous
review and integration etc. are adopted in the right spirit.
Initial Challenges and Best Practices adopted for seamless execution:
Page | 7
In this case, finding the right skill-set in User Interface (UI) development was a major concern. The
solution was offered by adopting the distributed agile approach. The best of UI development resources
are imbibed into the scrum team by including one more location in US.
One of the first stepsthe team took in order to scale up the development cycle is to make every team
member aware of the time zones other members are working in by using multiple calendars in Outlook
and multiple clocks. Toupdatethe team on day to day status, team members share notes that contained
the code check-in status, build status and any known issues that needed to be worked on or ignored
when the developers in other locales start their day.
Some of the distributed scrum best practices adopted and benefits they reapedhave been provided
below.
Practices How it applies to this project Benefits
Imbibe face to face
interaction
1. Regular useof Skype, through web
cams for scrum meetings, sprint
planning and sprint end meetings.
2. 30 minutessprint end team huddle
is conducted within scrum teams.
3. End-of-day status notes sharing
with the entire team.
Brought transparency in communication
between different geographically
distributed teams.
Each team member is appreciated on
the different impediments faced during
developments and ways devised to
resolve them.
Establish the greater
picture: shared
project vision
1. The team conducts release
planning, sprint planning and daily
scrum together.
2. 2 hours release review meeting is
conducted after each release
where all stakeholders join to
discuss and understand the end to
end aspect covered in the release.
Builds integrity within the team on the
overall business requirement and
bonding with the team
Continuous
integration (CI) with
high test coverage
across all teams
1. Continuous integration is enabled
through build scripts in TFS.
2. There is an agreement of minimum
70% code coverage
Improve on code quality and establish
uniformity.
Rigorous process 1. Uniform coding standard adoption Reduces variability in code quality and
Page | 8
enforcement to
achieve high product
quality
across all technologies.
2. Code review tools (FxCop)rule-set
configured based on the adopted
coding standard.
3. The team has enforced code
check-in comments by setting up
Team Foundation Server (TFS)
check-in policy
ensures uniformity in code development
and code review process
Involve full team in
story estimation;
release planning,
iteration planning,
review, and
retrospectives.
1. The story estimationis conducted
online,using
www.planningpoker.com where the
entire team join across locations.
2. The grooming session/story
walkthrough is conducted during
the start of a new release (sprint 0)
for all the resources.
3. Sprint end/release end
retrospection conducted.
The entire team, distributed across
locations, “owns” the release.
It is the team and only the team who
conclude as to how much of story can be
accommodated in the sprint.
During the sprint planning sessions,
story walk through is conducted for all
members in the cross-functional team
(BA/developers/testers etc.)
Finally it is the team who retrospect
deduce the preventive action.
Extensive use of
toolset
1. Jira used for story creation and
elaboration and end-to-end story
tracking and reporting.
2. Usage of ALM tools for test case
and defect life-cycle tracking.
3. Online planning poker portal for
story estimation.
4. Workflow in TFS for peer-review of
code.
5. “Codenizant”toolset and best
practice usage
6. Configured JIRA to send auto-
replies with issue number to
stakeholders.
Reduction in time expended for
coordination.
Transparency in tracking and status for
each story being worked upon.
Reports with metrics clearly depicting lag
(if any).
Improve upon code quality and reduce
defect leakage.
Overall benefits from adoption:
Page | 9
1. Earlier using the conventional SDLC waterfall model, the development cycle was 8X5, whereas
the distributed agile approach enabled the team to scale up to a development cycle of 24X5 i.e.
almost round the clock development thereby improving the output nearly three times
2. Reduction of around 35% defect volume by adopting the distributed agile approach.
3. By leveraging the location specific available talent, the skill-set gap in UI development was
mitigated.
Scenario 2:
Let us consider another case.This project is involved in developing both web and mobile device based
application enabled for multiple operating systems (iOS, Android). The technology stack includes
Java/J2EE, Oracle, Spring MVC framework, The scope involves a web/device basedapplication which
would provide car sharing servicefor the end user.There are differentcar sharing programs for universities,
businesses, governments and organizations thereby saving up to 30% in transportation costs.
Problem Statement:
The team had earlier implemented projects for the same client using classical (co-located)agile to great
success with limited scope and small team size. Now, with the advent of the mobile device based
application development, the team was looking for a way to optimize the usage of agile in a much larger
team, more complex requirements with highly specific technical/domain skill-sets.
The customer on the other hand was looking for a better solution that would result in faster time to market
as well as coming up with a solution with lesser defectin production.
Solution:
Considering the above scenario, the entire development methodology was supposed to be optimized to
meet the expectation. Adopting distributed agile approach perfectly suited the team.
Project organization:
There were100+ resources working in 3 different locations, 1 in US and 2 in India. Each sprint is for 3
weeks which includes sprint planning, story estimation, development,review of functional aspects, sprint
hardening and QA testing. Each release, comprises of 5 sprints (4 development sprint and 1 hardening
sprint). Each sprint is of 15 days, with development for first 10days, integration testing on the 11th day
using jMock.
Initial Challenges and Best Practices adopted for seamless execution:
Page | 10
To meet the requirement of highly specific technical/domain skill-sets in the project, the development
team is segregated into separate groups such as Concept board and Discovery board for requirement
elicitation and validation, HTML board for design finalization, UI board and service board for development,
Architecture board architectural viewpoint and QA board maintaining the testing workflow.
Confluence is used for capturing entire requirement and elaboration is also done through this by concept
group. After getting the requirement, UX team create interactive graphical representation of wireframes
using Axure.
With the creation of wireframes, development of story starts by UI team and service teams. End to end
tracking, generating all agile development related metrics and progress reports is maintained in JIRA.
Planning poker is used for estimation purpose. A separate Architecture team works on proof of concept
for any task. There is also a service discovery team whose purpose is to explore and validate the usage
of each service.
From concept elaboration to retrospection, each phase is fully automated,and maintained in tools. The
team holds daily scrum meetings involvingall locations and a scrum of scrums meeting involving scrum
master.
Some of the distributed scrum best practices adopted in the project and benefits they reapedhave been
provided below.
Practices How it applies to this project Benefits
Imbibe face to face
interaction
The team uses video conferencing and
other modes for their scrum meetings,
sprint planning and sprint end
retrospections.
Brought transparency in
communication between
different geographically
distributed teams.
Establish the greater
picture: shared project
vision
The team conducts release planning,
sprint planning and daily scrum together.
Builds integrity on the overall
business requirements and
creates bonding with the team
Set Up Pair
Programming
At the end of a sprint, an hour long
developer show-and-tell is
conductedacross locations.Every team
member demonstrates (using screen
sharing) his or her work to the entire team
for feedback.
This practice fosters code
sharing and reusability, and
results in greater team bonding.
Page | 11
Rigorous process
establishment to
achieve high product
quality
1. . The entire workflow for a story lifecycle
from its creation, validation, architecture,
design finalization, development and
testing is maintained through specific
agile boards in Jira.
2. The same coding standard is mandated
for use for all scrum teams across
locations.
3. Code review tools rule-set configured
based on the adopted coding standard.
4. The “definition of done” is maintained in
Jira.
The status of story during the
entire lifecycle is available to
the entire team.
Reduces variability in code
quality and ensures uniformity
in code development and code
review process.
Acceptance criteria are
uniformly communicated
adhered to before any story is
accepted.
Involve full team in
story estimation;
release planning,
iteration planning,
review, and
retrospectives.
1. Entire team participates in the sprint
estimation conducted through online
planning poker portal
(www.planningpoker.com).
2. The grooming session/story walkthrough
is conducted during the start of a new
release (sprint 0) for all the resources.
Entire team distributed across
locations “owns” the release.
Extensive use of toolset 1. Jira used for story creation, end-to-end
story tracking and reporting and defect
life-cycle tracking.
2. Story description is maintained in
confluence.
3. Online planning poker portalfor story
estimation.
4. “Codenizant” toolset and best practice
usage
5. Issue tracking is maintained in
Jira,configured to send auto-replies with
issue number to stakeholders.
Reduction in time expended for
coordination.
Clarity and transparency in
issue tracking.
Reports with metrics clearly
depicting lag (if any).
Improve upon code quality and
reduce defect leakage.
Educating the team Regular training sessions conducted on
the adoption of tools understand cultural
differences within distributed teams
Understand the tools and teams
better.
Overall benefits from adoption:
Page | 12
1. Highly complex and technical requirements handled effectively by usage of agile boards
maintained in Jira.
2. Improvement in velocity rate and resource efficiency across releases.
3. Marked improvement in defect turnaround time.
Quantitative Benefits:
Benefits the team received in implementing distributed agile scrum mode of delivery:
Chart1: Productive hours Improvement
Benefit Calculation:
Release number # of story points deliveredProductivity (Efficiency) per resource
(considering 40Hrs available per week)
Rel 2.0 770 28/40 = 0.70
Rel 5.0 825 30/40 = 0.75
Rel 7.1 880 32/40 = 0.80
Initially, during Rel 2.0, resources were working at 70% efficiency, which improved to 80% for Rel7.1.
Page | 13
Chart2: Defect fixes for each release
Release Total defects fixed Effort spent in defect fixingEffort spent on defect fixing
(per 100 hour)
v 5.1.0 218 6841 17.4
v 5.1.2 220 6899 15.2
v 6.0 221 6985 14.3
v 6.1.0 217 7001 13.9
v 6.1.2 218 7022 10.9
Table1: Defect tracking report
From Table 1, the improvement in defect fix hour per 100 hour story (where defects/release is constant) is
6.5 (17.4-10.9)
Lessons Learnt:
In the process of adopting and applying distributed scrum, we have learned several valuable lessons-
Follow all the basic scrum practices
Arrange adequatescrum training.
Team needs to have a Scrum Coach to support during initialsprints.
There should be adequate tool usage
Encourage frequent communication, both formally and informally.
Arrange overlapped working hours for distributed teams formeetings and synchronous
communication.
Page | 14
Conclusion:
This paperdescribes how agile practices based on scrum had been applied to medium sizeddistributed
software product development program. The overall experience of using scrum ina distributed setting
was very positive. Extending agile, from the history of itssuccessful application in small one-site projects
to a distributed model can pose a challenge. However this can be achieved by constructing the‘right
team’, playing the ‘right roles’ with the ‘right skills’ and having the ‘right attitude’.Leveraging the proven
agile tools and techniques, distributed projects can obtainincredible benefits in terms of cost, productivity,
risk minimization and improved quality.
Successful implementation of agile helps to build a work force that is cohesive, cross functional, self-
motivated, self- sufficient, self-performing and proactive who are empowered to take up anychallenge in
future.
Reference:
2013 Agile Experience 2013 Finale Deck Sanitized Deck
Ramesh B, Cao L, Mohan K, Xu P. 2006. Can distributed software development be agile?
Communications of the ACM 49(10):41-46
Case study:Client is one of leading provider for the global travel industry.
Case study:Client is one of the largest car rental companies in the US.
Distributed Scrum Primer by Pete Deemer.
Page | 15