Irrespective of the number of off-the-shelf software programs which are available, there will always be a requirement for software development. Whether that is for development of an entirely new “bespoke” software or customisation of an existing program, an agreement should be entered into between the customer and developer. The Software Development Agreement which forms this contract is used when a customer wants to “hire” a developer to develop software. Software development can range from converting or modifying an existing program, to writing bespoke software from the very start. In most cases the customer will be relying upon the skill and knowledge of the developer.
This contract covers the full cycle from preparation of a specification, software development and then to installation, testing, warranty and ongoing support.
This contract also provides for approval of the Specification by the customer, Acceptance Tests and a Development Timetable.
Since this contract in drafted for the benefit of the developer, the price of the development works is based on time and materials (not a fixed price) and is paid in tranches from the date of signing of the contract.
The vital issue of who owns the copyright in the resulting Software is clearly established, in addition to a clause relating to non-solicitation of the developer’s staff so as to avoid the temptation of the customer trying to
“poach” the development staff who worked on the project to “future-proof” ongoing support.
Specific Points to Consider:
Specification (Clause 4)
To minimise the developer’s potential liability, it should deliver the Software Specification for the customer’s approval thereby attaching a degree of responsibility to the customer since the highest proportion of disputes between a customer and a developer arise from a deficiency, failure or misunderstanding based on the Specification.
Acceptance Testing (Clause 5)
For the developer it is vital that “clearly-ascertainable” acceptance tests are devised which will result in a “Yes/No” type result, since final payment will usually be linked to “Acceptance”. The customer on the other hand, would prefer that it only “accepts” the software when it “satisfies” the customer’s requirements or “performs satisfactorily for the purposes of the customer’s requirements” (as in Contract 9). If the developer commits to a timetable, it will not want to agree to penalty charges (liquidated damages) if the development slips behind the timetable milestones/deadlines whereas the customer will want such penalty provisions.
Price (Clause 6)
In agreeing a price for the development work, it is more beneficial for the developer to charge on a “time and materials” basis rather than agree to a fixed price, since software development, especially the writing of a new program rather than customising an existing program, is notorious for taking longer and often involves more work than either party anticipates, especially if the customer wants to add new features part way through the development.
Payment (Clause 7)
Payment terms for the developer’s benefit should optimally be X per cent upon signing the agreement, Y per cent “up-front” to carry out the development work and Z per cent (which should preferably, from the developer’s point of view, be less than 10 per cent of the total price) upon passing of the acceptance tests.
Liability (Clause 10)
If there can be said to be any “generally acceptable limit of liability”, then the value of the contract appears to be the most ‘acceptable limit’. However, every contract is negotiable on this point.
Copyright (Clause 11)
It is of paramount importance that the ownership of the copyright in the developed software is established. If the customisation is so specialised and the developer is unlikely to find another customer for it, the developer may not be unduly concerned if the customer demands ownership of the copyright. However, even in such circumstances the developer may wish to retain copyright in any work especially if software development is its main business or if it wishes to support the customised software.
From the customer’s viewpoint (see in Contract 9), it is safer to own the copyright so that the customer can change, modify, enhance and/or support the software without being reliant solely upon the developer and therefore, subject to the developer’s charges for such support.
Non-solicitation (Clause 16)
A non-solicitation clause may be necessary since the developer’s staff usually need to work closely with the customer and the customer may be tempted to poach the developer’s staff especially if the customer owns the Software and wants to support it in-house after acceptance.