William Curry, a partner in the Corporate Commercial Group at leading law firm Arthur Cox, examines how the recent innovative approach to software development can be reflected in contracts.
Anyone active in IT software development, either as a developer or a buyer, will be familiar with the recent move towards agile software development processes.
They may also be familiar with the GLS Model Services Contract which, like most in the IT sector, includes a detailed Specification to which the supplier responds. The project then proceeds through design, coding, testing and integration, with fixed (and sometimes interim) Milestones, leading to deployment of a finished product often by way of ‘big bang’ implementation.
This form of development and model of contract has been used and refined on many large-scale ICT contracts over the years. But there is now a new software development procedure that many in the sector feel is better. This is agile development.
Agile software development rejects traditional software processes in favour of a more fluid approach. It features short, frequent development cycles that are iterative and incremental. The resultant continuous feedback is used to successively refine and deliver a solution.
Planning, development and delivery are continuous and adaptive. There are no detailed project plans or key milestones because the client and developer continually evaluate and prioritise activities in short iterations or ‘sprints’.
For example, one of the most commonly used agile approaches is scrum methodology. This allows a team to self-organise and make changes quickly. The ‘scrum master’ is the facilitator for the agile development team and manages the process for how information is exchanged.
For this new type of software development there is a need to consider a new type of contract. Such a contract must focus less on a prescriptive Specification and Milestones and concentrate more on the agile process to be followed and the relevant obligations and responsibilities within that process.
Key provisions that such a contract should address include:
- the product owner: How appointed, key responsibilities;
- the development team: Agreed and appropriately skilled and experienced;
- the scrum master: Skills, experience and qualifications required, key responsibilities;
- the project vision: Overview of project e.g. Project duration, sprint duration, Number of Sprints, resource for project / Sprints and termination trigger dates;
- the product backlog: Equivalent of Statement of Requirements. Prioritised list of all items that are to be developed during the project. Estimated effort for each item to be included and product owner then assigns priorities;
- the Sprint: during which each iterative stage of development takes place. Duration of each Sprint to be included and which cannot be extended;
- acceptance testing procedure: Procedure that customer follows when determining whether software at each stage is of the agreed accepted standard or not; and
- dispute resolution procedure: Due to flexible nature of agile, a dispute resolution procedure clause and expert determination clause should be included.
In contracting for agile, there are a number of challenges to overcome, for example distinguishing between delays and defects; classifying remedial work as a further requirement (rather than breach); and the essential informality of the process making it more difficult to gather evidence in support of any contractual remedies.
It remains entirely possible to contract for the nuances of agile development – but it does require a different approach and a suite of documentation that understands agile from the ground up.
With extensive experience of procuring, drafting and negotiating all manner of IT contracts and software development, the Corporate Commercial Team at Arthur Cox is well positioned to advise on all aspects of agile contracting. Please call +44 28 9023 0007 for further information from William or your regular Arthur Cox contact.