presentation by somdatta banerjee

20
Page | 1 Mant Somda Servic Cogniz

Upload: pmiireptp

Post on 24-Jun-2015

80 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Presentation by somdatta banerjee

Page | 1

Mantra for Process Excellence

Somdatta BanerjeeService Quality Consultant-DevelopmentCognizant Technology Solutions

Page 2: Presentation by somdatta banerjee

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

Page 3: Presentation by somdatta banerjee

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

Page 4: Presentation by somdatta banerjee

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

Page 5: Presentation by somdatta banerjee

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

Page 6: Presentation by somdatta banerjee

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

Page 7: Presentation by somdatta banerjee

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

Page 8: Presentation by somdatta banerjee

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

Page 9: Presentation by somdatta banerjee

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

Page 10: Presentation by somdatta banerjee

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

Page 11: Presentation by somdatta banerjee

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

Page 12: Presentation by somdatta banerjee

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

Page 13: Presentation by somdatta banerjee

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

Page 14: Presentation by somdatta banerjee

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

Page 15: Presentation by somdatta banerjee

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