Software development agreement lawyers

The term software development agreement is used to describe a contract for the development, the licensing and the maintenance of software. There are two main types of software development agreement however individual agreements will vary widely, depending on the type of software, the customer’s business and the use to which the software is put. The two main types of software development agreement are standard waterfall agreements and the newer agile agreements.

Waterfall agreement

The waterfall development agreement is the traditional software development agreement. In waterfall software development there are distinct stages, and each stage generally finishes before the next one can begin. There are numerous advantages to using waterfall agreements. Developers and customers can agree on exactly what will be developed early on in the development cycle, and measure progress accordingly. Apart from reviews and approvals, waterfall development also means that a customer presence is not strictly required after the requirements phase. The software can also be designed completely and more carefully when there is a complete understanding at the beginning. This provides a better software design rather than adding on pieces of code as the project goes on.

Agile agreement

Agile software development is the more modern approach to software development under which requirements and solutions evolve through the collaborative effort of cross-functional teams and their customers. Agile software development agreements advocate adaptive planning, early delivery, and continual improvement, and encourage rapid and flexible responses to change. There are numerous advantages to using agile agreements. The customer has frequent and early opportunities to see the work being delivered, and to make decisions and changes throughout the project. The customer also gains a strong sense of ownership by working extensively and directly with the development team throughout.

The software development agreement

The development and modification of software are often a cause of disputes between suppliers and customers. The software development agreement is therefore an important document to get right. Before entering into a software development agreement, each party should carry out due diligence. Each party should find out what the intellectual property rights position is, and, in particular, what licences are necessary for the project to go ahead. The supplier should seek to establish what it needs to provide the services, particularly in terms of licences from the customer, third-party licences and its own software.

By its very nature software needs to be copied so the developer either needs to grant a licence to the customer or assign the intellectual property rights over to them. The agreement must therefore clearly stipulate the intellectual property rights and address numerous questions. These questions include:

  • Who will own the intellectual property rights?
  • What licences are needed for the project to go ahead?
  • Are any other third party licences required?
  • Will the client have any rights to modify the software or the software source code?

There are a number of other terms which should be considered in all software development agreements. For example, the software development agreement should include an implementation plan. This plan will set out the timetable for each stage of the project and will initially be prepared by the supplier as part of the tender documents. The customer should make sure that negotiations include a thorough examination of the viability of this plan and its conformity with the customer’s business requirements.

The software development agreement should also include clauses concerning the services to be provided and what should happen if there is a delay. Many agreements will provide for liquidated damages for delay on successful completion of the project. However, there are alternatives to this. A payment clause will also be included. A customer will want as much predictability in the cost of the software as possible however the supplier may only want to give a fixed-price quotation for simple software, or where very little customisation of an existing program is required.

If not fixed, a system of charging should be negotiated which provides some sharing of the risk of cost increases between the parties. Another important clause to include in a software agreement is a change control clause. Changes made to software during development can lead to delay and an increase in costs. One of the difficulties in waterfall software agreements is that the customer can rarely define exactly what it wants before any development work begins. Procedures to vary what is to be provided are therefore essential in any software development agreement but these must be controlled.

For any questions you may have concerning software development agreements contact Neil Williamson.