optimizing agile with global software development and delivery

7
Optimizing Agile with Global Software Development and Delivery A blueprint for integrating global delivery and Agile methodology, allowing organizations to achieve faster returns on investment, accelerate time-to-market and increase market opportunity. Executive Summary Agile software development and global service delivery have achieved demonstrable benefits for organizations worldwide. Although there are challenges with both strategies, and questions as to whether they can coexist, when managed properly Agile and global service delivery provide organizations with numerous benefits, including accelerated and bug-free software delivery that tightly aligns with business requirements. This white paper provides a process framework that was developed as part of our implementation of a multimillion-dollar project for a global consumer goods company delivered via a global, Agile delivery model. This paper not only examines the benefits that businesses can leverage by imple- menting this model but outlines the best practices that should be followed to handle challenges that are sure to crop up along the way. Evolution of Concept The software services industry has undergone numerous changes during the past decade. Among the visible changes in software devel- opment has been the increased use of Agile software methodology, which has emerged as a way to accelerate code creation and delivery while remaining aligned with dynamic business requirements. Meanwhile, traditional global delivery has provided a unique selling point due to cost reductions and gains in productivity and resource management. However, the increased adoption of the Agile software methodology has proven challenging for companies trying to seamlessly partner with software service providers. Software service providers were at first reluctant to embrace Agile since it was thought to offset the benefits of the global delivery model. However, increased adoption of Agile by organizations worldwide has forced clients to realign their relationships with service providers to incorporate the features of Agile development, such as rapid develop- ment and quick turnaround time, to fit the global delivery model. Business Environment Organizations are exhibiting increased levels of confidence in sourcing due to the success of the global IT and business services industry. This has led to an increase in the complexity of projects that are outsourced. Complex projects increase Cognizant 20-20 Insights cognizant 20-20 insights | june 2013

Post on 17-Oct-2014

2.937 views

Category:

Technology


1 download

DESCRIPTION

Agile software development and global service delivery work seamlessly together through careful coordination of Sprint scheduling, Scrums, stand-up meetings and other elements of the software delivery lifecycle.

TRANSCRIPT

Page 1: Optimizing Agile with Global Software Development and Delivery

Optimizing Agile with Global Software Development and DeliveryA blueprint for integrating global delivery and Agile methodology, allowing organizations to achieve faster returns on investment, accelerate time-to-market and increase market opportunity.

Executive SummaryAgile software development and global service delivery have achieved demonstrable benefits for organizations worldwide. Although there are challenges with both strategies, and questions as to whether they can coexist, when managed properly Agile and global service delivery provide organizations with numerous benefits, including accelerated and bug-free software delivery that tightly aligns with business requirements. This white paper provides a process framework that was developed as part of our implementation of a multimillion-dollar project for a global consumer goods company delivered via a global, Agile delivery model. This paper not only examines the benefits that businesses can leverage by imple-menting this model but outlines the best practices that should be followed to handle challenges that are sure to crop up along the way.

Evolution of ConceptThe software services industry has undergone numerous changes during the past decade. Among the visible changes in software devel-opment has been the increased use of Agile software methodology, which has emerged as a way to accelerate code creation and delivery

while remaining aligned with dynamic business requirements.

Meanwhile, traditional global delivery has provided a unique selling point due to cost reductions and gains in productivity and resource management.

However, the increased adoption of the Agile software methodology has proven challenging for companies trying to seamlessly partner with software service providers. Software service providers were at first reluctant to embrace Agile since it was thought to offset the benefits of the global delivery model. However, increased adoption of Agile by organizations worldwide has forced clients to realign their relationships with service providers to incorporate the features of Agile development, such as rapid develop-ment and quick turnaround time, to fit the global delivery model.

Business Environment Organizations are exhibiting increased levels of confidence in sourcing due to the success of the global IT and business services industry. This has led to an increase in the complexity of projects that are outsourced. Complex projects increase

• Cognizant 20-20 Insights

cognizant 20-20 insights | june 2013

Page 2: Optimizing Agile with Global Software Development and Delivery

2

the risk of failure; this has resulted in many services firms using structured development methods that call for greater customer involve-ment. This creates overhead for the project and reduces flexibility.

There is evidence that Agile methodology in outsourced projects can deliver better results in a dynamic environment. A survey conducted by Executive Brief, indicates that more than 56% of software industry business leaders preferred Agile software methodology over other models (see Figure 1).

Industry Challenges

Among the key obstacles to global services firms that want to embrace Agile is that it requires a single team working in one location; adapting this process to multiple teams in different geographies and time zones poses significant challenges. The process-oriented global delivery model requires the cumbersome and time-consuming creation of several artifacts, such as functional specification documents, technical specification documents, test case documents, requirement specifications, etc. The Agile model provides an alternative to overcome this challenge by providing rapid devel-opment with minimal documentation due to its enhanced interactivity among developers and clients.

Customer Expectations

Whether it’s software development or business process outsourcing, when two disparate orga-nizations work together success can be achieved only iteratively, using as many feedback loops as possible that can be designed into the effort.

Global Agile software development offers both buyers and sellers of global business and IT services the opportunity to achieve perfection.

In a global services engagement, customers can partner with service providers to meet the increased need for rapid builds and dynamic business requirements, thereby providing:

• Increased visibility during the development process.

• Flexibility to alter requirements and incorpo-rate change requests.

• Quick turnaround.

Our framework helps organizations embrace global Agile software development by leveraging proven global services delivery methods.

Key Components

• Sprints: A module/feature of a product will be developed using short development cycles called Sprints.

• User stories: A user-centric description of the goals that one or more people will achieve by using the end software deliverable. This includes delivery of a product with incremen-tal features and improvements at the end of each Sprint and parallel execution of all phases of the software delivery lifecycle (SDLC) in a Sprint.

• Stand-up meetings: Daily Scrum calls for status updates and risk/issue resolution. Key decision-makers participate in the meeting and all issue clarifications/resolutions are provided in the same meeting.

cognizant 20-20 insights

Source: Executive Brief, “2011 Software Development Trends Survey” Figure 1

What is Your Preferred Software Development Methodology/Model?

Agile

Iterative

Watefall Process

RAD

RUP

XP: Extreme Programming

V-Model

Other

56.5%

15.6%

9.2%

9.2%

0.8%

1.9%

2.3%

4.6%

Page 3: Optimizing Agile with Global Software Development and Delivery

Agile Scrum-specific software configurable items (SCI) include:

• Product backlog: This is a prioritized list of all features needed and wanted for the end product.

• Sprint Backlog: A subset of the product backlog that needs to be frozen before a Sprint starts.

Any change suggested in a Sprint will be added to the product backlog and will be part of the next Sprint.

Prerequisites

Figure 2 illustrates the prerequisites needed to begin global Agile development.

Roles and Responsibilities

One of the main criteria for a successful global Agile delivery model is the commitment from the organization and its end users to engage closely with service provider and carry out the responsi-bilities, as listed in Figure 3.

3cognizant 20-20 insights

Figure 2

Creating a Global Agile Development Plan

Vendor to identify Scrum master.

Client to identify a product owner.

• To define features/requirements of the product and prioritize.• Sign off product backlog & Sprint: accept or reject.

• Ensure team is fully functional and productive.• Maintains close cooperation among all roles and functions.

Vendor to set up development team.

• Each module should have 4-8 member team. • Mature and committed team which organizes itself and its work.

Sprint review meeting to be decided by client and vendor.

• Client to provide clarifications and resolve outstanding issues.• Team to demonstrate development status to product owner.

Product backlog to be decided by client and vendor.

• At least 20% of the product features should be prioritized.• Backlog every Sprint and reprioritize accordingly.

Advance Sprint plan by product owner.

• Product owner should have plan for at least two Sprints in advance.• Review product backlog list and identify scope of current Sprint.

Figure 3

Allocation of Responsibilities During a Sprint Development Project

Stage Details Vendor Client DeliverablesSprint scope and duration.

Sprint duration should be no more than three to four weeks.

Decide the schedule (three or four weeks) depending upon the requirement.

To confirm the scope at least one week before the start of the Sprint.

Sprint backlog.

Sprint requirement gathering.

For Sprint execution, it is mandatory to have clear requirements prior to the start of the Sprint.

Confirm the requirement’s clarity after requirement analysis.

To decide the start of Sprint and clarify all requirements.

Product backlog user stories.

Sprint execution.

Product backlog will be updated with new requirements.

Execute the Sprint. Perform user testing. UAT logs.

Sprint user testing.

To be done in the last week of the Sprint.

To plan bug fixing and changes suggested.

Perform user testing. UAT logs.

Sprint daily stand-up meeting.

15 minute stand-up meeting. Present quick status and plan for the day.

Clarification queries and discuss what to take up next if required.

Sprint review.

Sprint review meeting to be held daily to give status and receive clarifications if any.

Share learnings and issues. Share learnings and issues.

Steps needed to modify the process.

Sprint sign-off.

Sprint sign-off as the exit criteria.

Provide sign-off on successful execution of each Sprint.

Sign-off e-mail.

Page 4: Optimizing Agile with Global Software Development and Delivery

cognizant 20-20 insights 4

MethodologyProject delivery is divided into small functional releases or increments to manage risk and to obtain early feedback from customers and end users (see Figure 4). These small releases are delivered on a schedule using iterations that typically last between one and four weeks each. Iterations are all fixed at the same length to maximize feedback and regularly force the trade-offs necessary to deliver. Moreover, their fixed scope helps retain stability. Plans, require-ments, design, code and tests are created initially and updated incrementally as needed to adapt to project changes.

Sprint Schedule

The various stages of a representative Sprint are depicted in Figure 5.

• Sprint 0: This Sprint is the initial step to begin the Agile process. It consists of gathering requirements necessary to begin the first Sprint. A product backlog list is created to identify all the potential user stories. Sprint 1 will begin only after the scope is confirmed and all requirements are clarified.

• Sprint 1: In the example shown in Figure 5, each Sprint consists of three weeks of development followed by two weeks of user acceptance testing (UAT) and change requests (CR). Change requests raised by the client are classified into major and minor CRs. Minor CRs are incorporated into the current Sprint during the UAT week and major CRs are added to the product backlog. The product backlog is reviewed during the iteration planning process, and the scope for the upcoming Sprint is

Figure 4

Ready, Set, Sprint

DeploymentDet

aile

d R

equi

rem

ent

Gat

heri

ng Code & Test

Daily Scrum Meetings

15/20 Working

Days Iterations

Regular Builds

Sprint Review MeetingSprint

Increment

Regression/Integration Testing

Sprint Planning Meeting

Sprint Planning Meeting

Sprint Backlog

Sprint Goals

Release Planning Meeting

Product Backlog

Sprint Backlog

Figure 5

Representative Sprint Timeline

Development

Development

Development

Development

Requirement Gathering &

Analysis

Requirement Gathering &

Analysis

User Acceptance Testing/ Change

Requests

Iteration Planning

Requirement Gathering &

Analysis

Iteration Planning

User Acceptance Testing/ Change

Requests

Requirement Gathering &

Analysis

Iteration Planning

User Acceptance Testing/Change

Requests

W0 W1 W2 W3 W4 W5 W6 W7 W8 W9 W10 W11 W12 W13 W..n

Sprint 0

Sprint 1

Sprint 2

Sprint 3

Sprint 4

Sprint..N

Page 5: Optimizing Agile with Global Software Development and Delivery

cognizant 20-20 insights 5

finalized based on the priority of the items in the product backlog.

• Sprint 2: Requirement gathering for Sprint 2 will begin during the development stage of Sprint 1. Development of Sprint 2 will begin in the second week of UAT of Sprint 1.

The same process will be repeated for subsequent Sprints.

The roles associated with each stage in the iterative process are illustrated in Figure 6.

Testing

Maximizing the benefit of global Agile software development requires that testing and coding begin concurrently. Requirements are translated into user stories and then software features, against which test cases are built. Acceptance testing occurs in tandem with development; no development Sprint is considered complete until the software features pass QA.

Test-driven development (TDD) is a rapid cycle of testing, coding and refactoring. When adding a feature, the developer and tester may perform dozens of these cycles, implementing and refining the software in baby steps until there is nothing left to add or take away. A Microsoft research2 study shows that TDD substantially reduces

the incidence of defects. When used properly, it also helps improve design, documents public interfaces and guards against future mistakes.

Business Benefits

The benefits that were realized as part of our implementation of a multimillion-dollar project for a global consumer goods company delivered via a global Agile delivery model are as follows:

Financial

• Market opportunity: Building functional products with limited features and then continuing to add features results in acceler-ated time-to-market.

• Faster return-on-investment:: By using a global Agile development model, products/applications can be built and released earlier than by using traditional Agile or waterfall models, resulting in faster ROI.

• Higher productivity and reduced risk: Clients are able to obtain higher productivity than with traditional Agile and waterfall models due to elimination of irrelevant paperwork, and they require fewer artifacts by leveraging the Agile global delivery model. The iterative process ensures that risks are minimized due to constant feedback on deliverables provided by the client organization.

A Typical Agile Sequence

Business AnalystVendor

Client

Scrum MasterDeveloperTester

Business User

User Stories & Functionality

High Priority User Stories

Iteration Scope

Release Management

Integration Testing

DeploymentUser

Acceptance Testing

DevelopmentIteration Planning

Product Backlog

Requirement Gathering

and Analysis

Change Requests

Figure 6

Page 6: Optimizing Agile with Global Software Development and Delivery

cognizant 20-20 insights 6

Process

• Continuous improvement: Agile development accelerates the delivery of initial business value, and through a process of continuous planning and feedback is able to ensure that value is continually maximized throughout the development process.

• Visibility: By measuring and evaluating status, based on testing software, much more accurate visibility into the actual progress of projects is available for end user and development teams.

• Collaboration: Through daily communication, global Agile teams can best understand and discuss customer requirements. Team collabo-ration reinforces best practices and makes it easier to introduce new tools and development techniques.

Application

• Lower defect density: Customers are assured of getting defect-free applications due to the iterative nature of releases. Critical bugs are caught early in the project.

• Adaptability: As a result of iterative planning and feedback loops, global teams are able to continuously align the delivered software with desired business needs, easily adapting to changing requirements throughout the process.

• Flexibility: An Agile global delivery model is far more accommodating to change requests at any time of the project when compared to traditional Agile and waterfall models. Frequent communication eliminates gaps in requirement gathering.

The Best of Both Worlds To succeed, global Agile software development model projects require the following:

• An ideal project resource split: 20% customer resources, 30% IT onsite resources and 50% IT global resources.

• The teams should have overlapping work hours and the entire team should start together.

• An offshore representative should be part of the daily Scrum.

• Retention of business knowledge by the client organization is key.

• A variety of communication methods should be used (rather than just one): videoconferenc-ing, IM, LiveMeeting, Web collaboration tools, project portal repository, Wiki forums and face-to-face sessions.

• Preplanning for the next Sprint (three-week Scrums) should occur in parallel with the running Sprint.

Guidelines to consider include:

• Well-defined acceptance criteria with pro-duction-like boundaries: While unplanned work sometimes occurs, it lowers efficiency of completing planned work. Try, if at all possible, to defer the unplanned work to the next Sprint (a three-week delay).

• Centralize documentation so it is accessible for all and changeable by all.

• Maintain daily stand-up meetings.

• Maintain metrics of planned tasks vs. unplanned tasks completed per Sprint.

• Ensure the requisite communication band-width. This is often a challenge for global teams. Remember to schedule overlapping work hours.

• Provide full visibility into project status.

• Work with mature clients only; clients need to understand how Agile works.

• Provide Agile mindset and method training. Examples of training approaches include:

> One-day workshops.

> Computer-based training (CBT) of best practices.

> Mentoring.

Footnotes1 http://c.softserveinc.com/newsletter/Software-Development-Trends-Survey-Results-2011.pdf

2 http://research.microsoft.com/en-us/groups/ese/nagappan_tdd.pdf

Page 7: Optimizing Agile with Global Software Development and Delivery

About CognizantCognizant (NASDAQ: CTSH) is a leading provider of information technology, consulting, and business process out-sourcing services, dedicated to helping the world’s leading companies build stronger businesses. Headquartered in Teaneck, New Jersey (U.S.), Cognizant combines a passion for client satisfaction, technology innovation, deep industry and business process expertise, and a global, collaborative workforce that embodies the future of work. With over 50 delivery centers worldwide and approximately 162,700 employees as of March 31, 2013, Cognizant is a member of the NASDAQ-100, the S&P 500, the Forbes Global 2000, and the Fortune 500 and is ranked among the top performing and fastest growing companies in the world. Visit us online at www.cognizant.com or follow us on Twitter: Cognizant.

World Headquarters500 Frank W. Burr Blvd.Teaneck, NJ 07666 USAPhone: +1 201 801 0233Fax: +1 201 801 0243Toll Free: +1 888 937 3277Email: [email protected]

European Headquarters1 Kingdom StreetPaddington CentralLondon W2 6BDPhone: +44 (0) 20 7297 7600Fax: +44 (0) 20 7121 0102Email: [email protected]

India Operations Headquarters#5/535, Old Mahabalipuram RoadOkkiyam Pettai, ThoraipakkamChennai, 600 096 IndiaPhone: +91 (0) 44 4209 6000Fax: +91 (0) 44 4209 6060Email: [email protected]

© Copyright 2013, Cognizant. All rights reserved. No part of this document may be reproduced, stored in a retrieval system, transmitted in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise, without the express written permission from Cognizant. The information contained herein is subject to change without notice. All other trademarks mentioned herein are the property of their respective owners.

About the AuthorJithin Josey PMP®, CSCP is a Senior Consultant in Cognizant Business Consulting’s Engineering and Manufacturing Services Practice. He has seven-plus years of experience in project management, Agile software development methodology, business requirement gathering, business analysis and intelli-gence and business consulting around IT strategy, supply chain management and manufacturing and logistics across multiple geographies in the U.S., Canada, Singapore, UAE, Philippines, Malaysia and India for leading Fortune 500 clients. Jithin holds an M.B.A. from SP Jain Center of Management-Dubai/Singapore and a bachelor’s of engineering degree from Bangalore University-India. He can be reached at [email protected].