The saying that Agile Software Development or Agile Testing works only for small collocated teams turned out to be a myth by 2005. Since then, the adoption of Distributed Agile has continued to rise across the globe, especially in Outsourced Product Development.
In his seminal paper “What is Agile Software Development?” written during 2002 in Cutter Journal, Jim Highsmith has articulated very well on the fact that even though the term ‘agile’ got bonded with ‘software development’ during early 2000, paradigms such as Feature-Driven-Development existed several years ago and such paradigms proved to be successful in large projects. Agile practitioners, during early years believed that agile software development is for small, collocated teams. As years went by the distributed agile delivery model became predominant in the industry. The strong belief of agile practitioners (that agile practices works only for small collocated teams) got transformed by the evolutionary nature of agile best practices. Several success stories and surveys eventually proved that agile can be scaled for large distributed teams as well.
Many of our Software Product Engineering partners have worked with us in applying Distributed Agile across several projects and have seen good results as well.
Software development got distributed across the globe because of several reasons. The key reasons include the need to have development and support teams close to market segments, the constraint to deliver products under tight budgets and the eagerness to harness local skills for global development. When agile worked well for small collocated teams, practitioners in the industry fine tuned the best practices in order to retain the essence of ‘Agile Manifesto’ and ‘Agile Principles’ in the Global Delivery Model. This is how Distributed Agile evolved.
Distributed Agile is all about implementing agile principles through agile best practices in project teams spread across multiple locations or sites. This happens through a lot of collaboration and coordination among teams. One cannot take a named agile methodology and apply it step-by-step in a distributed ecosystem. Every software project is unique in its execution of software product engineering and so is the combination or collection of every Distributed Agile team. Hence the essence of Distributed Agile is all about collaborating and putting together the way we want to execute a project by means of leveraging agile best practices and fine-tuning existing methodologies.
Mindtree SPE has several success stories on Distributed Agile. Every year we do see many new engagements getting kicked-off in Distributed Agile model. Ensuring success, Distributed Agile has several challenges pertaining to Distributed Agile model, which include working with multiple teams, cultures, time zones and managing communications and coordination among agile practices teams. Projects need to identify and recognize critical success factors that are paramount to delivering success.
Conclusively, if your current methodology in distributed delivery model is not yielding result, Distributed Agile is worth exploring. Have you applied agile principles in the distributed delivery model? Any thoughts?