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.
The Software Development Agreement contract covers the full cycle from preparation of a specification, software development and then to installation, testing, warranty and ongoing support.
Since this Software Development Agreement is drafted for the benefit of the customer, the price of the Development Works is fixed and is paid at the end of the development when the customer has “accepted” the Software.
The vital issue of who owns the copyright in the resulting Software is clearly established.
Specific Points to Consider:
Recitals A & B and Customers Requirements (Clause 4)
For the customer’s protection, the customer wants to “rely wholly and exclusively on the developer’s skill and judgement” so that if anything goes wrong or the Software fails to perform in accordance with the customer’s requirements (as ascertained by the developer) the customer pays nothing.
To ensure that the developer is solely responsible and liable for the development, the Software Specification is drawn up by the developer and is NOT submitted for the customer’s approval except to input that “Acceptance” only occurs when the customer is totally satisfied with the Software.
Acceptance Testing (Clause 5)
The customer 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 stated in the outline specification since final payment will usually be linked to “Acceptance”.
The customer should ensure that the developer commits to a Timetable and ensure that penalty charges (liquidated damages) are charged for late performance.
Price (Clause 6)
In agreeing a price for the development work, it is much more beneficial for the customer to agree 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.
Payment (Clause 7)
This contract is structured so the customer pays nothing until: (a) the customer alone is satisfied that the Software recommended and supplied by the developer performs the functions and has passed the Acceptance Tests; and (b) the source materials for the Software have been delivered to the customer and the source materials for the developer’s and third-party software have been delivered into escrow. Only when (a) and (b) have been completed should the customer issue an Acceptance Certificate, which triggers part payment to the developer.
Liability (Clause 10)
As this contract is drafted for the benefit of the customer, there is no limit of liability for the developer.
If however, the Developer insists on a limit, the customer should assess the value of the contract, the cost of the man-hours of the customer’s staff which is to be involved in the contract and the cost of replacing the developer (e.g. going out to tender again).
Copyright (Clause 11)
It is of paramount importance that the ownership of the copyright in the Software is established. The copyright in Software should belong to the customer in this contract which is drafted for the customer’s benefit, therefore the source code and other materials should be delivered to the customer. If there are any other software products used in the Software, the source materials of such other software incorporated into the Software, should also be deposited in escrow.
Once the customer has installed and accepted the new Software, the developer should, if so requested by the customer, continue to support that Software.