• Share
  • Email
  • Embed
  • Like
  • Private Content
Optimizing Agile with Global Software Development and Delivery
 

Optimizing Agile with Global Software Development and Delivery

on

  • 2,810 views

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 ...

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.

Statistics

Views

Total Views
2,810
Views on SlideShare
2,624
Embed Views
186

Actions

Likes
2
Downloads
11
Comments
1

3 Embeds 186

https://twitter.com 184
http://kred.com 1
http://localhost 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

11 of 1 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • Showing use of Agile in a distributed delivery environment is very helpful and addresses key concerns about utility of Agile. Agile may be used for faster delivery of projects only AFTER a technology system is identified. But what about focus on the stages of a business project BEFORE a technology system is identified? Any reduction in time in the early stages of a business initiative BEFORE a system is identified delivers much greater business value than accelerating development AFTER a system is identified. See http://bbitsconsulting.com for case studies of reduction in time BEFORE a system is identified. Using a systematic business consulting method in the early stages of a business initiative not only speeds up the business project but also delivers more stable and higher quality requirements. This provides a good foundation for Agile to be more effective in a distributed delivery model.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Optimizing Agile with Global Software Development and Delivery Optimizing Agile with Global Software Development and Delivery Document Transcript

    • 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
    • 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%
    • 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 Deliverables Sprint 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.
    • cognizant 20-20 insights 4 Methodology Project 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 Deployment DetailedRequirementGathering 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
    • 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 Master Developer Tester Business User User Stories & Functionality High Priority User Stories Iteration Scope Release Management Integration Testing Deployment User Acceptance Testing Development Iteration Planning Product Backlog Requirement Gathering and Analysis Change Requests Figure 6
    • 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. Footnotes 1 http://c.softserveinc.com/newsletter/Software-Development-Trends-Survey-Results-2011.pdf 2 http://research.microsoft.com/en-us/groups/ese/nagappan_tdd.pdf
    • About Cognizant Cognizant (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 Headquarters 500 Frank W. Burr Blvd. Teaneck, NJ 07666 USA Phone: +1 201 801 0233 Fax: +1 201 801 0243 Toll Free: +1 888 937 3277 Email: inquiry@cognizant.com European Headquarters 1 Kingdom Street Paddington Central London W2 6BD Phone: +44 (0) 20 7297 7600 Fax: +44 (0) 20 7121 0102 Email: infouk@cognizant.com India Operations Headquarters #5/535, Old Mahabalipuram Road Okkiyam Pettai, Thoraipakkam Chennai, 600 096 India Phone: +91 (0) 44 4209 6000 Fax: +91 (0) 44 4209 6060 Email: inquiryindia@cognizant.com ­­© 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 Author Jithin 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 Jithin.Josey@cognizant.com.