Introduction
Over the past decade, there has been a significant shift in how the IT industry develops and deploys software. Traditionally, IT teams developed software using the waterfall approach. Under this model, a project team would kick-off a software engineering initiative with a detailed planning phase, during which the end-user requirements are analyzed and documented in detail. After finalizing the requirements, the project would move on to the design, coding, testing and integration phases, culminating in the deployment of the finished product. While the waterfall methodology provides a clear and structured approach for creating software, it entails long development cycles that do not effectively account for scope change. Specifically, it assumes that the project requirements can be “frozen” at the start, however in reality, end-user’s requirements are likely to change throughout the course of the project.
To effectively account for requirement modifications throughout the course of a software development project, the IT industry has increasingly turned to agile development processes as its preferred software development methodology. Under the agile model, software is developed in a series of “iterations”, or “sprints”, each lasting approximately 2 – 4 weeks.
Agile Development Model V/s Traditional Waterfall Model
Agile Development Model
- Continous cycles
- Small, high-functioning, collaborative teams
- Multiple pricing methodologies
- Flexible/continuous
- Customer involvement/collaboration
Agile Development Model
- Continous cycles
- Small, high-functioning, collaborative teams
- Multiple pricing methodologies
- Flexible/continuous
- Customer involvement/collaboration
During each iteration, the development team simultaneously performs design, coding and testing activities, with the intent of releasing working software with new features at the end of each period. As opposed to the waterfall model, the emphasis is on creating workable software at the end of 2 – 4-week periods.
While the IT industry has increasingly started to leverage the agile methodology to develop software, financial services companies have faced substantial challenges in drafting effective contracts for these types of engagements. In our experience, the following strategies can help financial services companies effectively manage and drive maximum value from their agile methodology steps contracts.
Hybrid Commercial Structure
In most cases, customers prefer that agile projects are executed on a fixed price basis. On the other hand, suppliers typically push for a time and material-based model. In our experience, however, sticking to either of those commercial models creates inefficiencies. Specifically, using a fixed price model for the entire project undermines the whole principle of Agile, as it forces the creation of rigid specifications and lengthy change management processes at the start of a project. On the other hand, a project executed solely on a time and materials basis creates disincentives for a supplier to create realistic timelines and stick to them.
We have significant experience in negotiating a hybrid commercial structure with suppliers for agile projects. This approach is effective in managing costs throughout the duration of the project, as well as ensuring customers and suppliers focus their efforts on areas that create maximum business value. Based on the client requirement, we are successful in customizing and negotiating a hybrid commercial model using some/all the characteristics below
- Time and materials for initial planning to determine the number of iterations or development cycles that are expected to occur during a particular software development project.
- Fixed price per iteration (calculated by either the amount of work required for that development cycle or the perceived value of the incremental features added).
- Fixed price per end-user requirement, by grouping all items that have a similar scope/ value.
- Fixed price for an agreed number of user stories, beyond which the commercial model will shift to a time & materials model
Termination Rights
From a client’s perspective, one of the key benefits of the agile methodology is that it does not require a commitment to a long development cycle. Rather, it emphasizes creating workable software, in short intervals of 2 – 4 weeks. Hence, customers should be able to walk away from the project after each iteration.
In reality, customers tend to face significant pushback in convincing suppliers to include a contractual provision that enables them to terminate (at no additional cost) after each iteration. Typically, suppliers highlight the significant time and resources in dedicating a development team and revenue recognition problems, in including such a clause. To overcome these issues, we have been successful in including the following provisions regarding a customer’s right to terminate a contract.
- Customer could terminate the contract, at no additional cost, after a defined “group” of iterations. These “groups” can be defined by grouping sprints that are expected to deliver similar business value and/or require a similar number of development hours.
- Standard rights to terminate immediately, such as a material breach by, or the insolvency of either party.
- Once terminated, the work-in-progress items including code and copies of other working materials become the IP of the customer.
Dispute Resolution
For an agile project to be successful, it must include a truly collaborative effort between the supplier and customer. To promote such an approach, it is critical to include a quick and efficient dispute resolution process. We recommend the following steps to resolve any disputes that might arise during an engagement
- Informal discussions between the client-side product owner, and the supplier Scrum Master (SCRUM is the most common software development methodology that follows the Agile approach)
- If these discussions fail to resolve the dispute, escalation to the senior management of each party.
- If the dispute is still not resolved after escalation, provisions to refer to an independent, 3rd party expert to resolve the issue.
Summary
Overall, the agile methodology provides significant benefits in creating and deploying software, especially when requirements at the start are ambiguous. By implementing the contractual measures above, financial services companies can ensure they stand to reap the benefits and drive maximum business value.