software development agreement is between a customer and a developer, by which the customer contracts for the developer to create and deliver a specified piece of software. It is essential to give each of the parties what they need and avoid disputes. If a legal dispute should arise, the agreement illustrates what the parties’ terms to the agreement were. The following is a gives a non-exhaustive overview of five important issues that this kind of contract should address.


Scope of Work

Scope of work encompasses the project’s objectives and is the most important part of the agreement. It should address the time frame, tasks, deliverables, quality of work, fees and payment schedule. It also determines the specifications of a project including the coding language used and the precise technical functions of the software.

Scope of work is like a blueprint, acting as an illustration of what will be created and as a guide to help determine the satisfaction of the end product. Including detailed scope of work statement in a software development agreement lessens the likelihood of misunderstandings, which can lead to litigation. Since the customer knows in detail what to expect, she is less likely to be dissatisfied with the end result or withhold payment. It is important that the developer clearly communicate to the client what he or she is planning. Moreover, flexibility should also be built into the agreement to implement changes in either the functional requirements or the specifications for the product. One or both of the parties may reserve the right to seek adjustments in the schedule to take into account technical or market changes over the term of the contract.


Representations and Warranties

The developer will make various representations to the customer regarding the performance of the product and the accuracy and completeness of the documentation. Warranties are used to allocate risk between the parties to the customer and the developer. Software performance warranties give a promise to the customer that the software will work the way the developer promised, and the developer will fix it for free if it does not. Since software development agreements involve a lot of bargaining between the parties, warranty provisions may vary.

The developer will commonly agree to provide additional support and troubleshooting for the product for some period of time following the end of the development period. The developer will also agree to maintain the confidentiality of any trade secret information created during the development period or received from the customer to assist the developer with its work.

Because of the complexity of software, it is not uncommon for delivered software to not conform perfectly to the specifications. The developer will want more leniency in the consequences for delivering software that fails to perfectly conform to expectations. The agreement should allow the developer the opportunity to cure any mistakes or errors, within a reasonable time. If a problem cannot be overcome during the cure period, the customer will generally have the option to either extend the cure period, terminate the agreement and demand a refund from the developer of any development fees previously received from the customer, or make the corrections itself and charge the developer for costs associated with fixing the problem.


Ownership of Intellectual Property Rights

Rights in software code and other work product created under a software development agreement are typically protected under copyright. Rights in software may also be protected under patent law for software-implemented processes and devices, and trade secrets for the software’s source code and related confidential documents and materials.

Depending on the needs of the customer, the agreement can culminate in either an outright assignment of the developed software from the developer to the customer — including any copyright and patent rights in the software — or simply a non-exclusive license to the customer, with the developer retaining ownership. For example, it may be that the customer has an idea for software to improve its own internal systems, but the customer has no intent, or capability, to produce and commercialize the software. If the customer does not care about whether other businesses, in the customer’s industry or otherwise, can use the software, it may make more sense for the customer to simply get a non-exclusive license from the developer, leaving the developer free to commercialize the developed software. Which party ends up owning the software should affect the consideration given to the developer.


Open-Source Software

The developer will, invariably, use open-source software. Open-source software is computer software that has the source code made available to the public with a license from the copyright holder. It permits users to study, change, and distribute the software to anyone and for any purpose. The client may seek a full list of all open source software used by the developer. It is important to seek warranties from the developer that the developer has read, understood and complied with the requirements for using that open-source software. This should include that the developer has followed the open-source software license requirements to include copyright notices and permission notices.


Non-Infringement Indemnities

With a large number of patents already protecting the details of software, and strict liability for patent infringement, there is a real risk that the developed software could infringe on an existing patent. There is also the risk of copyright infringement. Still, the potential for infringement, especially patent infringement, makes the indemnity clause particularly important in a software development agreement. The customer should be confident it is receiving a non-infringing piece of software, and the developer, rather than the customer, should be liable for damages incurred by any infringement claims by third parties. Generally, the developer will agree to indemnify the customer for any claims that the software breaches third-party intellectual property rights. The customer will however be required to notify the developer of any such third-party claims promptly and cede control of the defense and any settlement related negotiations.