If you are selling or developing software, it is imperative that you have robust agreements drafted when dealing with customers and suppliers.
What are the key issues I need to consider when drafting a software agreement?
Key issues to consider in software contracts include.
- Identify the software—software is computer code, but there is a significant difference between software 'source code' and 'object code' (explained below). A software contract should clearly state which type of code is being licensed and which version and release of that code
- Confirm what the software will do—the agreement should either clearly identify the performance specifications of the software, or set out a process whereby those specifications can be created and agreed
- Confirm who owns the intellectual property rights (IPRs) and the scope of the software licences granted—licences can be exclusive or non-exclusive, transferable or non-transferable, subject to territorial restrictions or restricted to certain business activities. Variables of this kind (as well as the duration of the licence) will have a significant impact on the value of the software contract
- Physical control of the software—consider in what form the software will be delivered, installed, tested on relevant systems and approved and who by in each case.
- Liability—confirm which losses arising from failure of the software or breach of contract are either excluded or will be recoverable. For example, consider whether standard exclusions of liability for 'lost profits' or 'lost data' are appropriate in each case
- Services—beyond providing the software, confirm which additional services will be provided. Key considerations include the hours of service, response and correction times, service levels and remedies for failure to achieve those levels. Confirm whether services will be provided at the customer's premises or remotely. Confirm the response times for responding to or correcting software faults
- Change control—software contracts need to be flexible enough to take into account changing business priorities. Software agreements should include effective change control and dispute resolution procedures
- Miscellaneous issues—depending on the precise nature of the agreement, there may be restrictions on the export of software, escrow arrangements and/or tax implications flowing from software contracts
Why is it so important to provide provisions around ‘acceptance testing’?
Acceptance tests are most common in software development agreements where the customer wants reassurance that the relevant software works properly on its systems before it is put to commercial use. The contract should set out the time periods for carrying out acceptance tests, acceptance test criteria, who will conduct the tests and the consequences of software failing the tests. These might include the following requirements:
- acceptance tests to be re-performed in a set period
- liquidated damages or daily/weekly credit up to a set amount until tests have been passed
- reduction in the fees, and
- re-payment of the price and termination
To find out more about drafting watertight software agreements, search Solicitors Guru for an IT or commercial law solicitor located in your area.