The benefits of Agile methodologies have been clearly proven over the past 10 years. The foundational tenets of agile ensure more predictable delivery of higher-quality software that is closer to the customer’s needs – even when changes occur late in the development lifecycle. While Agile methodologies themselves vary, the following principles are generally present in all of them:
- Simplicity (processes, architecture/design and code)
- Close connection between the business and the development team
- Close communication between development team members above all else
- Organize the teams and process around the work itself (user stories, self-organizing teams, etc.)
- Embrace change as a natural part of the development lifecycle
- Incremental delivery of working software in short time periods (weeks)
- Continuous integration, load and performance testing throughout the lifecycle
- Continuous attention to technical excellence and constant improvement
Of those, several items seem to be challenging with geographically and chronologically dispersed teams. In fact, many of the day-to-day practices commonly derived to satisfy these agile principles are ill-suited for anything but co-located team members situated within ‘conversational’ distance of each other; a configuration that is difficult even for projects run completely ‘onshore’.
For this reason, most multi-sourced projects have historically used ‘plan-based’ methodologies such as waterfall and in fact until recently, most classic offshore providers have been adamant about not using Agile methods. However, Perficient’s methodology working group believes that this rationale represents flawed reasoning, focusing too much on the ‘practices’ of Agile as opposed to re-evaluating the ‘principles’ of Agile in light of the special needs of a multi-sourced team.
In short, all Agile methodologies are ‘cast’ through the specific needs that the methodology is serving. These needs are described as the vision (or conceptual intent), usage and specialized constraints imposed by the target environment. By casting the Agile principles, one by one, through the specialized needs of multi-shore projects, a custom fit Agile methodology and its supporting practices can be derived.