Whoever has experienced outsourcing a software project, either as a supplier or a client, can appreciate the following advantages afforded by Agile development in the context of an offshore project:
-
In order to give feedback, the client receives monthly deliveries instead of waiting for the finished product, at which stage most of the budget will be spent and budgetary flexibility will be virtually reduced to zero.
-
Misunderstandings and short circuits in communication are manifested at a much earlier stage and corrections are therefore less costly.
-
Actually seeing the product during the development process helps the client to finalize the requirements and thus reduce the risk of deviation from the cost estimates and time schedule.
-
The supplier gains a working tool for risk control.
-
The client feels that he is in full control of the project's progress and is therefore more satisfied with the supplier.
-
The frequent client feedbacks create more effective communication between the offshore teams and the client. This improves the rate of production and better connects the offshore teams to the client's business logic, that in turn accelerates the rate of convergence on the final requirements.
-
The Agile development process fosters more involvement in the project by the offshore teams, that in turn reduces the attrition rates so typical of offshore development.
In the final analysis, if the advantages are so great, why do the outsourcing suppliers not clamor to equip themselves with Agile-based development methodology? Why do clients not always request Agility from the supplier?
From the client's point of view, the answer is mainly connected with his psychological resistance to unfamiliar development methodology and to the greater degree of involvement required of him. The feedback at the end of each development cycle requires the client to invest more resources than would be needed by him for a standard Waterfall-based outsourcing process.
The answer is somewhat more complex from the supplier's point of view. Major suppliers are more hesitant about the effectiveness of the Agile development process for large and complex projects, because of increased overhead costs, despite the fact that using the right architecture (such as SOA) most large development projects can be subdivided into a number of small projects. On the other hand, smaller suppliers find it difficult to adopt a process that demands such a high degree of discipline and skill on the part of the R&D team members. In order to propose and apply this type of development process, one needs a high degree of confidence in the quality its R&D teams.
Today, there is nevertheless a growing number of suppliers that adopt the Agile development methodology as an integral part of their services. There is an even greater number of companies that will not perform an outsourcing project with an offshore supplier who is unfamiliar with Agile development.
Fans of the Agile development methodology may claim that in large part Agile development depends on face to face collaboration and physical proximity between the client and the R&D teams. How does offshore deal with this critical claim? That will be the subject of my next post titled "Distributed Agile".