If you are having software developed, you are no doubt excited about the final product. However, software development is often a complex process. Accordingly, you want to ensure that the developer meets your expectations. A written software development agreement is an essential tool to clarify and enforce expectations. Usually, the software developer will provide this agreement. As the client, it is vital that you understand what the agreement contains and whether it adequately protects your interests. This article explains what to look out for in your software development agreement.
Development Services and Specifications
The agreement should clearly define the development services to be completed. Usually, this takes the form of a description of services in the main agreement, with an attached schedule of specifications that describes the final software in detail.
Anything not in the specifications will require a change to the agreement. Accordingly, the agreement should also set out how either party — you or the developer — proposes changes to the agreed services and specifications.
It is best that changes require the consent of both parties. The agreement should require that changes outline in writing:
- the additional services to be performed;
- any extra fees; and
- how the changes will affect the work timeline.
Time and Cost Guarantees
Ideally, you want both a quality product and cost certainty. Cost is also influenced by development time. Quality work may take longer, requiring you to pay more.
Unfortunately, software development times and costs can easily blow out. Therefore, you should check the software development agreement to determine whether the developer has given fixed pricing and delivery times, or simply guidelines. Guidelines are only estimates, while fixed pricing gives you better certainty.
Development Schedule and Acceptance Testing
Software development usually occurs in staged phases. This gives you a chance to see each phase of the software and approve it before moving to the next. Accordingly, the software development agreement should have a development schedule that contains agreed specifications that the developer must meet in each phase.
After the developer completes a phase, there is an approval process called acceptance testing. The agreement should clearly explain the acceptance testing process. For example, will the developer perform the test and provide you with the results, or will you test the software yourself? You will also want to know how long you have to complete acceptance testing in each phase.
The software development agreement should also explain how you communicate acceptance. You will usually communicate acceptance by providing a written notice. Ensure that you know what happens if you do not communicate acceptance in time. Some agreements take silence as an indication of acceptance.
Warranties and Indemnities
A well-drafted software development agreement will include a warranty from the developer that the product will work as described in the specifications. This warranty should include a promise to remedy any defects in the product at their own expense.
You want to see this explicitly set out in the agreement. There may be references to the Australian Consumer Law. However, as this is a business contract, consumer law protections only apply if the total development fees are $40,000 or less. Therefore, it is best to see the software development agreement clearly set out the warranties.
The agreement should assign the intellectual property in the software from the developer over to you. This ensures that you have the right to use and license the software.
To facilitate this assignment, the agreement will also include a warranty that the software developer has the rights to the tools used in your project and thus they can legally transfer or license these rights to you. This protects you if other parties claim that your software infringes on their intellectual property. Similarly, the developer will likely also seek a warranty from you that you have the rights to any material you provide.
In addition, software development is likely to include the use of open source software which is available for use by everyone. If the developer is using open source software, the agreement should make this clear and provide evidence of its open source copyright status.
Your software developer may require access to your business material and networks. Therefore, the software development agreement should contain a confidentiality clause that requires the developer to keep your business materials secret. The agreement should state that this obligation continues even after the developer delivers the software.
Termination means the end of the agreement before the developer completes the final software. The termination clause should set out:
- who can terminate the agreement;
- in what circumstances a party can terminate; and
- how either party will communicate the termination.
For example, the software development agreement may specify that either party must communicate termination in writing with a 10 business day notice period.
You want to make sure that you will not have to pay for services which the developer does not provide. Therefore, the agreement should also state that on termination, the developer:
- refunds any fees for work not completed; and
- assigns the work-in-progress software to you.
This ensures that you are able to continue developing the software with a different developer if necessary.
Having software developed can be a complex process. It is vital that both you and the developer are on the same page regarding the work to be completed, timeframes, costs and intellectual property. The software development agreement is an important contract for ensuring that both you and your developer have the same expectations.
If you need a software development agreement drafted or reviewed before you sign, call LegalVision’s IT lawyers on 1300 544 755 or fill out the form on this page.
Was this article helpful?
We appreciate your feedback – your submission has been successfully received.