Agile development is getting increased attention from IT professionals all over the world. Agile practices help to overcome many of the challenges in traditional approaches with its emphasis on lightweight processes, flexibility to deal with changing business priorities, short delivery cycles, higher team collaboration, and a host of other benefits. Agile offers a fresh approach to businesses seeking greater agility in their software projects.
At the same time, global delivery with offshoring has become a very cost effective approach for many companies to develop software. Enterprises today seek to derive the dual benefit of cost effectiveness of offshoring and high responsiveness of Agile practices at the same time. This requires the offshore services companies to revisit their development approach and integrate some of the Agile approaches to be competitive.
However, while Agile practices deliver significant advantages when applied in the right context, they also add significant risks and challenges when the practices are applied in the wrong context. According to a Gartner's research , applying Agile to unsuitable projects has been one of the key reasons for Agile project failures!
So, the key question is, will Agile work in a global delivery model? In this article we share our experience in implementing Agile in a global delivery context for a wide range of engagements.
If the question is " can Agile be applied in an offshore model ", the answer is a definite YES! Agile is a concept bound by set of values and principles ( Agile Manifesto ). Provided you have a suitable environment, Agile practices can be applied irrespective of the location constraints. Offshore is no exception to this.
Integration of best practices requires a business-driven approach including multiple stakeholders.
We adopted a three step approach:
1. Identifying Agile practices that are aligned to business priorities.
2. Analyzing the business context of our organization.
3. Identifying challenges based on the business context and customizing Agile practices to address those challenges.
Identifying Agile practices that are aligned to business priorities
Identifying the engineering and business challenges and building a common agreement among the key stakeholders will assist in prioritizing which Agile practices would result in the highest benefits to the organization. For example, if there are challenges around product integration and quality, daily build and automated testing practices will result in better benefits compared to practices around requirements management.
Once the business priorities are defined, choose the Agile practices that are aligned to the priorities. Select few key practices to rollout in phases.
Analyzing business context of our organization
Most of the Agile methodologies like Scrum, XP etc. were born in a context of co-located teams with high degree of business availability, predominantly comprising of internal teams (not contractors), highly experienced and competent domain experts. In direct contrast, the context for a global delivery model has distributed teams with limited business availability and predominantly comprising of contractors.
We analyzed the context differences and derived a best-of-breed methodology instead of adopting an existing methodology or practices as-is. Let's look at each of the context differences and the probable solution for overcoming those. A base framework was defined based on the possible solutions taking corresponding assumptions into consideration.
Distributed vs. co-located teams
The team distribution can have a significant influence on the methodology used for the development. Not having co-located development and business teams is a challenge for any development methodology, but it is crucial for Agile since Agile practices focus more on people than process.
Distributed teams have a direct impact on the communication and collaboration. Practices like daily stand-up, release planning, iteration planning need special adaptation when used in the global delivery context. For example, for daily stand-ups, the teams can have a single stand-up over teleconference at a time that is convenient for all. If there are larger teams distributed, the scope can be logically split for the teams to work independently and a representative from each location can have a daily sync-up (scrum of scrums).
Limited business availability