Which Software Development Contract
Software development projects are difficult to structure, manage and run. Larger projects, in particular, seem to suffer from more than their fair share of problems: delivery delays, regular specification amendments, cost-overruns, buggy software products and unsatisfied customers, to name a few.
Whilst a good software development contract won't solve all of the problems, it can be a big help. A well-drafted contract can help both developers and customers to think clearly about the project, to anticipate problems and find solutions before problems arise, to reduce the scope for misunderstanding and miscommunication, and to provide mechanisms for resolving problems if and when they do arise.
The software development contracts that you can download from this site come in two flavours: standard and premium. The premium versions are extended versions of the standard contracts, and accordingly all the provisions of the standard contracts are included in the premium versions. The additional provisions include a clause concerning the licensing of software source code to the customer, a project management clause, provisions concerning the integration of the software with the customer's system, a clause mandating testing by the developer, a data processor clause (necessary under the Data Protection Act where a "data processor" is processing personal data on behalf of a "data controller"), non disclosure provisions, a clause restricting publicity, a change control mechanism, a non-solicitation clause and detailed indemnities.
The software development and maintenance agreements are extended versions of the software development agreements, including clauses relating to support and maintenance services.
Key Clauses of Software Development Contracts
The analysis here relates to the two software development agreements, and the development (but not the maintenance) provisions of the software development and maintenance agreements. For an analysis of the maintenance provisions of these agreements, see the page describing the provisions of the software maintenance agreements.
The project management clause, included in the premium software development contracts but not in the standard contracts, provides that all the customer's instructions relating to the contract (or, if you prefer, a sub-set of the customer's instructions relating to the contract) must flow through the specified channel or channels, from an authorised representative of the customer to an authorised person working for the developer.
There is also provision for regular project management meetings. These can be scheduled and/or may be called by either party.
Development and delivery
The basic obligations of the developer are to achieve each project milestone (milestones to be defined in the schedule to the agreement) and to deliver the software to the customer by the agreed delivery date. These obligations can be expressed in the agreement as absolute obligations, or they can be qualified, for example so that the obligation is to use "all reasonable endeavours" to achieve the milestones and deliver by the delivery date.
In addition to the delivery obligations, the premium software development contract includes an optional obligation on the developer to complete the integration of the software with the customer's systems by an agreed date.
Developer quality testing / customer acceptance testing
Both a developer quality testing clause and a customer acceptance testing clause are included in the premium development contract. The standard development contract, by contrast, does not have a developer testing clause.
Licence / assignment / assignment and licence
The standard contract includes a licence clause similar to that set out in our software licence agreement templates.
In addition, the premium software development contract includes an assignment of the rights in the software from the developer to the customer, which may be used as an alternative to a licence. Another alternative clause is included, under which some of the rights in the software are assigned to the customer whilst others are licensed. The mixed assignment/licence clause may be useful, for instance, where the customer is demanding an assignment of rights, but some of the underlying code has been used on other projects.