At the National Outsourcing Association’s recent Offshoring Day, one of the presenters posed the question whether Agile development methods are really suitable for offshore software development. This is something I have pondered over on and off during the last couple of years.
At the National Outsourcing Association’s recent Offshoring Day, one of the presenters posed the question whether Agile development methods are really suitable for offshore software development. This is something I have pondered over on and off during the last couple of years. It is true that on the face of it, many of the characteristics of Agile development – e.g. face –to-face working, regular change, increased iterations, close customer collaboration – don’t seem to be feasible in offshore development. Throughout the past couple of decades offshore development companies spent a great deal of time and effort working on process and documentation to increase planning and decrease the number of iterations in the development and testing process and this is what traditionally their models have been based on. Yet now, Future Processing and many other software developers use Agile methodologies to deliver projects to our clients. In fact for quite a few of our customers, Agile development is part of their supplier criteria.
So how are we reconciling Agile with distance-based development? The fact that it is hard to work in an Agile way across distances cannot be ignored. One of Agile’s key characteristics is sitting in one office with smooth communication. However it is perfectly feasible to have two Agile teams: one at the customer’s site and one in our offices, with communication between them managed by representatives from both teams. And that is what we do at Future Processing. We also have virtual stand-ups across sites using video conferencing and we use IM. This does not have the same effect as a single office, but it is not that far off. What this illustrates is that while Agile methods are possible in offshore software development, they are often slightly diluted from pure on-site Agile. Customers and offshore developers need to be prepared for this. The teams may not be as close, there may need to be slightly more documentation, the QA process may be slightly less fluid, but most of the benefits of Agile development can still be realised by both outsourcer and customer. Agile does seem to be a better way of developing software than previous waterfall methods.
For a start customers normally benefit from shorter development cycles and development teams are often more motivated. We have to put effort into making Agile work well across countries, but I feel that the benefits it brings is makes offshore development the Agile way worth it.