WordPress Shortcode

Link

Distributed agile and offshoring - antagonism or symbiosis?

Agile software development and the breed of agile methodologies (XP, SCRUM, DSDM, etc.) have gained popularity since 2001. Agile methodologies were primarily founded for software projects executed at
…

Agile software development and the breed of agile methodologies (XP, SCRUM, DSDM, etc.) have gained popularity since 2001. Agile methodologies were primarily founded for software projects executed at a single location. Today, with many adopters and practitioners across the globe, agile methodologies are showing promising results in multi-site projects too. Offshore delivery models have been successful in application maintenance and enhancement projects for more than two decades. In the case of development projects, iterative lifecycle approaches are more widespread and acceptable than the classical waterfall approach in delivering results and ensuring customer satisfaction.

Transcript

2.
Summary Agile software development and the breed of agile methodologies (XP, SCRUM, DSDM, etc.) have gained popularity since 2001. Agile methodologies were primarily founded for software projects executed at a single location. Today, with many adopters and practitioners across the globe, agile methodologies are showing promising results in multi-site projects too. Offshore delivery models have been successful in application maintenance and enhancement projects for more than two decades. In the case of development projects, iterative lifecycle approaches are more widespread and acceptable than the classical waterfall approach in delivering results and ensuring customer satisfaction. Distributed agile software development involves software projects done by agile teams located across geographies. This paper presents Mindtree’s point of view on distributed agile and offshoring.ContentsWhat is distributed agile? 03Global Software Engineering (GSE), distributed agile and offshoring 03Challenges in distributed agile 03Distributed agile and offshoring: antagonism or symbiosis? 04Our capability 05What next? 06White paper 02

3.
What is distributed agile? Distributed agile is the application of agile methodologiesAgile is all about delivering business value in short such as XP, Scrum, DSDM or any other home growniterations at a sustainable pace, adapting to changing methodology based on Agile Manifesto and Agile Principles,business needs. Agile software development focuses on in GSE projects.early delivery of working software and considers workingsoftware as the primary measure of progress. It creates an There are two variations of distributed agile in theenvironment that responds to change by being flexible offshoring context: Distributed agile in offshore insourcingand nimble. It discourages creation of extensive documents is when two or more teams of a single organization fromthat do not add any value. Distributed agile software different countries participate in an agile project. A gooddevelopment and testing is simply applying agile principles example of this is when distributed agile teams involveand practices to software projects executed by distributed teams from a large US based ISV and its captive center inteams or teams located at different sites. These could be at another country.two or more floors of the same building, different buildings,cities or countries across geographies and time zones. Distributed agile in offshore outsourcing is when two or more teams of different organizations from differentGlobal Software Engineering (GSE), distributed countries participate in an agile project. A good exampleagile and offshoring of offshore outsourcing is when one or more teams from aGlobal Software Engineering (GSE) involves software service provider like Mindtree participate with the teamsengineering projects executed with virtual teams from of a manufacturing firm or ISV. In this paper the termdifferent time zones and diverse cultures. In the past ‘offshoring’ means ‘offshore outsourcing’.decade GSE has become popular and widespread due tofactors such as optimal costs, availability of a skilled pool Challenges in distributed agileof resources and globalization trends like mergers and The vision of any GSE project is to deliver work productsacquisitions. Distribution of teams becomes a complex of high quality on schedule. This is done by engagingissue when an increasing number of teams from different geographically distributed teams that define theorganizations participate in a project from different right architecture for distributed development andlocations or sites as shown in fig. 01. Additional factors such following the right processes and tools for coordinationas project complexity, lifecycle activities, pricing models and communication. There are several challengesand culture impact distributed teams. encountered in areas such as requirement engineering,Fig. 01: Distribution of teams Organization (Single vendor, multiple vendor) Location (Same country, different country, multiple countries) Other factors (Lifecycle, project complexity, pricing model, culture) Number of teams 2, 3, 4,...White paper 03

4.
change management and project management, to name teams need to understand and appreciate culturala few. Practitioners continue to adopt evolutionary differences and work together in ensuring harmony andmethodologies such as agile software development in rapport among all teams.order to ensure success in distributed projects. Delivery ofworking software at regular intervals at a sustainable pace Distributed agile and offshoring: antagonismand responding to the changing needs of business users or symbiosis?are the imperatives of agile. However, one must understand The success of distributed agile projects involvingthe challenges involved in distributed development. These offshore teams depends on several factors: project type,challenges fall under three broad categories: volatility of requirements, distributed governance, skills and competency of team members and the culture of1. Communication and coordination: Collocated teams participating organizations. Those who have succeededhave the advantage of interacting with each other and in distributed agile projects in the offshoring context agreewith the onsite customer on a daily basis. This helps them on the symbiotic relationship between distributed agileunderstand and refine requirements in a timely manner. and offshoring. Those who fail however, are curious to knowGeographically distributed teams on the other hand, do exactly what practices help distributed projects succeed.not get the opportunity of meeting face-to-face or havinginformal hallway or water-cooler discussions. They have to The organizational culture of participating organizationsdepend on a set of tools and processes to communicate and plays a major role in nurturing distributed agile ecosystems.coordinate with each other. Also, in contrast to collocated A good mindshare, open communication and collaborativeteams, distributed teams need to practice just enough participation among organizations, results in a positivedocumentation in order to create and retain knowledge relationship that supports distributed agile projects.across teams. Without these elements, organizations continue to function with differences in understanding and expectations on2. Time zone differences: Time zone differences impact distributed agile.distributed teams. This impact can be both positive andnegative, depending on the work culture and relationship To ensure early success, starting with a non-critical pilotamong team members. For example, two teams from project or with simple user stories is critical for positiveoverlapping time zones with a 5-hour overlap may feel very reinforcement amongst teams. Organizations wanting tocomfortable working with each other. However, the more develop modules involving critical functionalities or buildthey utilize their time in communication and coordination, mission-critical products or applications using distributedthe less time they will get for other engineering activities. agile, must ensure prior experience in distributed agile inAt the other extreme, if there are two teams with only an all participating teams.hour of overlap, they will have to stretch or work extrahours for an additional overlap, unless they are smart There is a widespread misunderstanding in the industryenough to use the one hour overlap efficiently. The way that when requirements change on a daily basis, agile isdistributed teams manage this challenge depends on the way to go. If requirements are changing so fast and ifpeople, culture and leadership style. they are to be implemented instantaneously, it is good to have all the team members or most of the team members in3. People, culture and leadership style: There are two main one location. This is because highly volatile requirementsfactors that influence interaction between distributed warrant intense communication among team membersteams. The first fundamental factor is the work style and and timely resolution of queries related to requirements.culture of the locale or country. The second key factor These are the symptoms of ad-hoc development, productis the organizational culture. Organizations new to agile envisioning or concept development. Such projects canmethodologies or in the early stages of agile transformation be executed in an offshore model. However, these are notfind it very difficult to cope with these challenges. Whereas ‘distributed agile’ projects because agile methodologiesorganizations that promote agile and have an established require discipline and involve delivery of working softwareagile culture manage these challenges confidently and at a sustainable pace or through time-boxes.execute successful projects. Geographically distributedWhite paper 04

5.
Governance and senior management support is important Python, Perl, and C#. We supported these productsin distributed agile ecosystems. Distributed agile projects on multiple platforms including Windows, Solaris,expose risks at an early stage. Continuous improvement and Linux and Mac.course correction is possible only when project sponsorsunderstand how distributed agile projects progress over In each project, we had multiple Scrum teams of 7 to 9 each.initial iterations. The Mindtree and customer teams followed Scrum for rapid development with frequent delivery and demonstration ofWe have experienced the symbiotic relationship between working software in order to ensure customer satisfaction.distributed agile and offshoring and so have our customers. We selected a Sprint size of two weeks and ensuredOur capability collective participation in Sprint planning. Our teamMindtree has proven experience of over 10 years in participated in daily stand-up meetings and demonstratedagile methodologies. We have executed software working code at the end of Sprints. Using NUnit and CPPUnitdevelopment, maintenance and testing projects using agile our team members practiced Test Driven Developmentmethodologies with distributed teams as well as collocated (TDD). Also, we generated burn down / burn up charts foroffshore teams. Our experience includes: sprint planning and retrospectives. 50,00,000+ man hours of experience in agile projects 1000+ agile team members With more than 8 years of partnership and 30% agile 100+ ongoing agile projects adoption in a team of 200 we have found immense benefits in implementing distributed agile practices inWe understand agile as well as other evolutionary this engagement.methodologies. Our experience in executing projects inonsite-offshore models enables us to apply agile principles Case study 2and best practices in distributed teams. In order to make Agile transformation in geographicallythis work at an organizational level, we have created subject distributed teamsmatter experts and agile coaches. We also facilitate training Mindtree implemented agile methodologies to executeprograms on distributed agile to build agile capabilities in multiple projects for one of the global leaders inour organization. These are the crucial steps we adopted to automobile manufacturing and construction. Some of thesemake it work. projects involved a major refactoring or rewrite of one or more IT applications using technologies such as Java, C#,We promote agile through Mindtree Agile Council and Oracle, SQL Server, BizTalk, WebSphere, FlexNet, SAP etc.Agile Community. Mindtree Agile Council, a team of The other projects involved application enhancement,agile experts, focuses on nurturing agile capabilities at change request management and support.Mindtree and facilitating competency building programs.Agile Community at Mindtree is a knowledge management Mindtree set up a dedicated offshore development centercommunity that provides a common platform for all at Bangalore with a team of 200 engineers for the rewrite,practitioners and promotes knowledge sharing. In addition upgrade, enhancement and support of the existing portfolioto these we contribute to external conferences and online of IT applications. We collaborated with our customer andmedia by sharing our success stories, presenting white decided to introduce agile methods in some of the keypapers and participating in discussions. projects. To ensure success in this agile transformation, we initiated training programs on agile practices for allCase study 1 team members.Distributed agile in product engineeringMindtree implemented distributed agile to execute multiple In one of the projects we implemented Scrum with fourprojects for a leading global provider of security, storage sub teams in order to address the major refactoringand system management solutions. These projects involved requirements in an IT application. We started withproduct reengineering, maintenance and enhancement of two week Sprints and practiced release planning, backlogmultiple products based on technologies such as Java, C++, grooming, daily stand-ups, reviews and retrospectives,White paper 05

6.
and continuous integration. After the initial months, weintroduced Test Driven Development (TDD) to improve What next?product quality. Mindtree has contributed to several success stories on distributed agile. Every year we see many newSimultaneously, we introduced Scrum practices in a large engagements kicking off in this model. We havemaintenance project with Scrum of Scrums. We started with experienced the symbiotic relationship betweenfour week Sprints to match the rhythm of release cycles. distributed agile and offshoring and so have ourIn these projects we used tools such as Microsoft Visual customers. We believe that distributed agile willStudio, Team Foundation Server, and NUnit. be increasingly adopted over the coming years. For more information on Mindtree distributed agileMindtree has been engaged with this customer for more capabilities or case studies please contactthan ten years. Considering the success and benefits of raja_bavani@mindtree.com.distributed agile, the number of distributed agile projects inthis engagement is on the rise. References: Mindtree distributed agile blogs: http://www.blogs.mindtree.com/author/raja-bavani Mindtree articles and white papers: http://www.mindtree.com/services/agile About the author: Raja Bavani is Chief Architect of Mindtree’s Product Engineering Services (PES) and IT Services (ITS) groups and plays the role of agile evangelist. He has more than 20 years of experience in the IT industry and has published papers at international conferences on topics related to code quality, distributed agile, customer value management and software estimation. He is a member of IEEE and IEEE computer society. He regularly interfaces with educational institutions to offer guest lectures and writes for technical conferences. He also writes for magazines such as Agile Record, Cutter IT Journal, IEEE Software and SD Times.White paper 06