There are numerous debates about the possibility to combine Agile development and outsourcing. The main arguments for the failure of this initiative are the difficulty to establish effective ongoing collaboration required in Agile projects between a vendor and a customer because of the distance between these parties and the vendor’s need to adapt to changing customer’s requirements. But at ScienceSoft, we don’t mind choosing an Agile methodology (for example, Scrum, Kanban or Extreme Programming) for the outsourcing initiatives we are involved in.
On the contrary, relying on our experience as a software outsourcing company, we believe that there are several ways in which Agile helps development teams better manage their outsourcing projects compared to the outsourcing based on linear software development models (for example, Waterfall and V-model).
With the Agile methodology, detailed planning is required for one upcoming iteration. With this short-term iterative planning perspective, an outsourcing vendor prepares a plan for an iteration of 2-6 weeks, delivers a part of a solution’s functionality and then plans a new iteration. While, in Waterfall, vendors have to plan the whole project at its very beginning, which is more time consuming per se, and, if changes to the plan are needed during the project, it results in much rework or even creating a new plan from scratch.
Working according to Agile, a vendor can analyze the results of each iteration, and regularly assess project progress. And, once it comes to light that changes to the agile project are needed (for example, introducing new technologies to cover the customer’s requirements), they can be suggested and implemented on the go, while in linear software development even a minor update can jeopardize the whole project.
The flexible nature of Agile development allows vendors to enrich the outsourcing project management with the so-called Kaizen approach and implement continuous improvements to the development teams’ performance. After an iteration, the outsourcing vendor can analyze the team’s performance, identify the team’s weaknesses and make an attempt to overcome them in the next iteration. Also, based on individual performance within iterations, team leads can identify the team members that don’t keep up with the required pace of work and, as an option, substitute them with better-suited personnel to ensure that the goals of the outsourcing cooperation will be achieved timely and within budget.
In linear software development methodologies, testing is moved to the end of the software development life cycle. If preceding stages (requirements analysis, design or development) take longer than expected, testing can get less attention in favor of meeting project deadlines. In Agile outsourcing, the vendor continuously performs testing throughout each iteration, so it’s possible to early notice and eliminate software quality issues. As a result, the quality of project deliverables tends to increase.
Be ready to be Agile
Remember that the success of applying the Agile methodology in outsourcing development cooperation begins with both a vendor’s and a customer’s readiness to be Agile. If either a vendor or a customer is used to traditional development methodologies, going Agile will require changing their corporate state of mind and establishing such Agile development practices as tight and transparent collaboration of all the parties involved and readiness to implement changes throughout the whole project.