There are many different legal arrangements for software development. These agreements concern the extent of your legal rights in relation to the software and it will all hinge on the content of the contract between the developer and the customer. To make certain that what you want will be reflected in the wording, it is best that you obtain some legal assistance when drafting a software development agreement. It is pertinent that the contract reserves all your legal rights in writing explicitly, as silence may leave room for doubt that rights do or do not exist.

The beauty of a contract is its ability to cater to your particular needs; you will be able to insert general clauses to ensure that you achieve your desired outcomes. Standard provisions will involve terms relating to the development and delivery of the software, customer rights and obligations, payment and payment process, Licences and/or intellectual property rights, extent of liabilities and the process and effects of termination.

It is important to note that the following explanations are broad examples of what can be contained in your agreement. Because contracts hinge on the agreement, it is important that you understand the capacity of your software and know the problems associated in order to secure your rights. It is recommended that you seek legal advice, as software development agreements can be complicated and must be constructed carefully to achieve the desired purpose.

Setting out the development process

Generally, parties choose to outline minimum software or hardware requirements by setting out the actual development process. The process includes:

  • Specifications of the particular software;
  • Milestones outlining each stage of the development;
  • A timetable of deliverables;
  • A reporting process between milestones to allow for constructive development in the process. A report can show what is and what is not working in the development and mitigate any issues that will arise in future;
  • A testing process for the software to allow for the identifying of bugs and problems in the procedure;

These procedural agreements can be worded as being absolute, requiring that the terms of the contract to be complied with without exception, or they can be expressed as qualified, which allows for circumstantial variants.

This process may also include an optional agreement for the developer to integrate the software system for the customer by an agreed date.

Rights and obligations for Customers and Developers

Because the relationship is a contractual one, you can negotiate the rights and obligations of each party. However, the fundamental responsibility of the developer is to meet the milestones set out in the agreement and complete the software by the date agreed upon.

Assigning warranties and indemnities to allocate the risk between the contractual parties ensures that the software will stand any claims made by third parties. Provisions may be either broad, guaranteeing that the software will be safe from infringing on any third party intellectual property or narrow, providing specific guarantees as to the performance, security or stability of the software.

Software tends to develop quickly, which means that your software may need updating or upgrading in future. This can be dealt with through maintenance provisions outlining any necessary upgrades/updates and the process in which they will take place. This is beneficial for both parties to the contract as it is a means to secure future work for the developer, and expansion of profits (by way of continuing) for the customer. The agreement should outline any rights to the modifications.

Ownership of Software

Software is subject to intellectual property rights and is protected mainly under the laws of copyright. The use of software is considered as ‘copying’ software and, therefore, the customer must hold a licence or the intellectual property to the software. Where your licence lies within the spectrum rights will determine the extent of your legal rights over the software. It may determine whether a party retains the right to modify the software, access the software code, have the rights to sub-licence and other various uses or dealings.

Therefore, In order to have certainty about legal rights over the software, it is crucial that the terms of the licence are clearly outlined in the agreement.

Exchanges of proprietary information

Proprietary information is information that is considered to be the property of the holder. During software development, some proprietary information will be shared between the developer and the customer. It may include confidential information relating to the business that the company does not want to be made public.

Although there is a general duty to refrain from unauthorised use of the information, it is important to define ‘proprietary information’ in your agreement to outline how any information will be used, discarded or protected to ensure the rights of the owners.


Staff training in the use of the software is another common feature of software agreements. Should you choose to include this is your contract, it is important to state clearly whether it will be provided as part of the contract or as a distinct service separate from the main software agreement. This is because offering training as a different service is likely to involve additional charges and, as a result, the terms of the training and a separate charging procedure need to be outlined.

Payment and payment process

The time taken to develop software can vary significantly, so it is important to establish a payment arrangement that outlines the points in the process in which payment is due. This is beneficial for both parties as it provides the developer with income security and the customer with an assurance that each stage of the development is subject to acceptance before making payments.

Sometimes the payment process is structured around the licence to the software. A lump sum may be paid for the granting of a licence, with an additional fee over a fixed period. Alternatively, the granting of the licence may not be perpetual and may need to be renewed at a cost. Whatever the arrangement, the requirements for each stage should be set out clearly in the agreement.

Expenses relating to the development of the software should also be addressed to avoid confusion as to who is liable for the tax. Costs to host the software alongside staff, material and/or travel expenses should be outlined in the agreement for clarity.

Whether you are engaging the services of a developer or being commissioned to develop, it is essential that you read over the agreement carefully before signing. Naturally each party will want to maximise their rights, especially in the ownership of intellectual property. And because software development agreements are not standard form contracts, there may be provisions that may come back to bite you if you are not prudent in the contractual process.

So be sure that before you enter into a software development agreement, you know what you want out of it!

To find out more about software agreements or other forms of commercial contracts pleased click here, or phone our London office on 020 3588 3500 to make an appointment.

We welcome your comments; please feel free to write them in the comments section below.