|
Many businesses today will require bespoke software where off-the-shelf programs are insufficient to meet their needs. A programmer or a software company will therefore need to be commissioned to create the program and this article will examine the major issues which will need to be considered when entering into such an agreement.
The business will need to produce a functional specification and supply this to the developer. The functional specification is a document which sets out the intended features of the program and gives both parties certainty as to what is expected. The business commissioning the software will also need to devise acceptance tests which the software will be subjected to in order to ensure its suitability for its intended purpose. Acceptance testing is designed to simulate the environment within which the software will be used and the typical extremes under which it will be expected to operate. The business will not accept software which does not pass acceptance testing and the software contracts will need to include a clause to this effect.
As with any commercial software contract, the specific terms of payment will need to be set out. The developer may wish to secure payment as soon as possible, whereas the business may be reluctant to make payment until it is satisfied that the software if fully functional and free of bugs. Whilst a business may decide to pay the full amount upon signing the contract, it will often make payment in instalments at certain stages in the development process. Instalments could typically be made payable upon the parties entering into the contract, delivery of the software, passing of acceptance testing and deployment across the business. The precise terms will be specific to the parties, although from the perspective of the business it will be most advantageous to delay payment to the fullest extent possible until it is satisfied that the software is fit for purpose.
Most software contracts will exclude terms implied by statute, in particular the Sale of Goods Act 1979 and the Supply of Goods and Services Act 1982. They will instead include express terms known as warranties. It is important to note that the exclusion of terms implied by statute is not absolute and is only valid to the extent that the exclusions are reasonable (section 2 Unfair Contracts Terms Act 1977). Warranties will either state that the software is to comply with the functional specification or that any defects which arise will be corrected by the developer. It is common to place limitations on these warranties, such as a time limit (usually no longer than 12 months) and a limitation on the developer's liability to correct any defects, as opposed to paying damages. The developer will usually want to stipulate that warranties are not to apply if the business makes any modifications to the program.
The software contracts will need to specify the form in which the software will be provided to the business which has commissioned it. Nearly all software purchases, whether made by businesses or individuals, consist of “object code”, which usually takes the form of a disc containing a program to be installed on a user's computer. Whilst this can be read by the computer, it is separate from “source code”, which is the underlying code that constitutes the program. If the software needs to be updated in any way, for example to add new features or to remove bugs, it is the source code which will need to be modified and then compiled into object code. The contract will stipulate whether the source code is to be provided, although in most instances the developer will not provide this.
The copyright will be retained by the developer following completion of the contract unless an express term to the contrary is included. The developer will want to be free to use portions of the source code for future projects in order to save time, money and resources, whereas the business commissioning the software may wish to have exclusive rights to it, for example to prevent competitors from benefiting from its investment. However, exclusivity comes at a price and the developer will usually stipulate the payment of a considerable fee in order to part with ownership of the source code. In practice, most businesses will be unwilling or unable to pay this substantial fee in addition to the development costs.
It is important to consider software maintenance from an early stage. Bespoke software is a substantial investment for a business to make and it will be best placed to maximise this investment by ensuring it is able to procure the necessary support long after development has been completed.
The business may wish to add features to the program following completion of the contract which were not envisioned at the time the functional specification was produced. In addition to this, it may uncover software bugs through usage which were not discovered during acceptance testing. Any updates to fix software bugs will usually be free within the warranty period, although a maintenance agreement will be necessary thereafter. As discussed above, the developer will often stipulate that it will not permit any modifications to the program and the business will not usually be provided with the source code to make such modifications.
Whilst the commissioning business may not be entitled to the source code, it is important that a contract for bespoke software includes a clause dealing with source code escrow. This is where the source code is deposited with a secure third party and can not be released to the business which has commissioned the software unless certain stipulations contained in the contract are triggered. Typical trigger events include the software developer entering administration or failing to provide maintenance in accordance with the contract. A source code escrow clause will motivate the developer to ensure it fulfils its contractual obligations and will offer peace of mind to the commissioning business.
In conclusion, whilst this article discusses some of the terms of a contract for bespoke software, it is important to note that each contract will need to be as individual as the software for which it is being drafted in order to adequately protect the business' investment and to ensure the developer understands its obligations. Whilst a business may understandably consider the terms of payment and ensuring the software meets the functional specification from the outset, it is also vitally important to ensure that it understands the implications of source code not being provided and the importance of source code escrow. Purchasing bespoke software constitutes a significant investment into a business and so it is important to talk to a solicitor prior to entering into a contract to ensure this investment is protected and the technical terms of the contract, together with their implications, are understood.
Get in touch today and ask to speak to either Michael Coyle or Izaz Ali
|