How to Draft a Software Development Agreement - A 12-Point Checklist
Are you a software developer? More to the point, are you a software developer who wants to draft up a standard form of contract yourself, instead of having a lawyer do it? This checklist can help you cover the bases, but remember that it's always advisable to have a lawyer review your final form of agreement before anyone signs it, to make sure everyone's interests are addressed (it saves on litigation costs later).
Let's look at each of the sections that should be included in a standard-form Software Development Agreement, and the issues that should be addressed to protect your interests and those of your clients.
Every contract should begin with the names, addresses and contact information of the parties. If any party is a corporate entity, the jurisdiction in which it was incorporated should be included as well.
2. Full Description of the Software and the Development Process
All of these items should be addressed. They can be briefly described in the main body of the Development Agreement, with the detailed specifics attached as a schedule or appendix.
- Specifications of the software being developed.
- Definition of milestones and criteria for the start and end of each phase of development.
- Timetable for deliverables.
- Progress reports, including: milestones achieved, problems encountered, potential future problems, any changes to functionality, time schedule or milestones.
- Testing specifications and criteria for passing each test.
- Standards and procedures to be applied.
- Customer's right to conduct quality audits and to witness the developer's testing of the software.
- Installation, support and training that will be provided by developer.
- Developer's obligation to deliver the software and documentation in accordance with the specifications.
- Customer's obligation to supply hardware, software, support, personnel.
- Provisions describing the process for customer's acceptance of the software and documentation.
3. Background Technology
Any background technology (e.g. existing code and applications that will be utilized in the development of the software) must be described in sufficient detail, and the ownership of that background technology established - whether it is owned by the customer or the developer.
4. Definition of 'Proprietary Information'
Each party will be providing such things as business data, source code, and other types of confidential information. The term 'proprietary information' should be defined, as it applies to both the developer and customer.
5. Ownership of Software and Documentation
- Who owns the software and documentation (taking into consideration ownership of the background technology)?
- What are the rights of each party are with respect to licensing and sublicensing the software?
- The developer should assign its intellectual property rights in the software to the customer.
- It is also important to set out any restrictions on the use of the software (if applicable).
The section of the Agreement that deals with payment of the development fee should deal with more than just how much and when payments are to be made. All of the following should be addressed:
- Payment schedule should be based on accomplishment of development milestones.
- Amount of development fees, and allowable expenses, including any maximum amount.
- Do expenses over a certain amount require customer's prior written approval?
- Do the development fees include applicable taxes?
- Developer's invoicing schedule and due dates for payment of invoices.
- Process for customer's acceptance of development milestones.
- Customer's right to buy out of the contract in the event of early termination.
- Provisions for termination by either party, and for what reasons.
- Notice period and form of notice, which should include the reasons for termination and the effective date of termination.
- Survival of terms (such as confidentiality), licenses, and sub-licenses after termination. Which provisions will survive (continue to be binding after termination), and for how long?
- What types of training services will be provided by developer?
- Where will the training take place?
- How long will training sessions take place, and how many participants will be accommodated?
- What sort of training materials will be provided? Who provides them?
- Is there a separate fee for training, or is it included in the development fees?
9. Modifications to Software
- Spell out the customer's rights to modify the software, and to acquire any modifications by the developer.
- Who owns the modifications?
- Are there additional fees?
10. Errors and Defects
- The customer should have sufficient time to use the software to detect any errors or defects in the software. This section should set a reasonable notice period, such as 90 days, during which the customer should notify the developer in writing of any errors or defects.
- The developer has an obligation to correct the problems, provided that the errors or defects did not come about by misuse on the part of the user.
- The parties must also agree on a fair and reasonable arrangement as to any additional fees for work required to fix errors and defects.
The developer's warranties to the customer should include:
- Performance of the software.
- Customer's right to use software and documentation.
- Ownership of the software, and developer's ownership of any background technology used in the development.
- Indemnification of the customer against third party infringement claims and damages.
- Survival of warranties after termination or expiration of the contract.
The customer should also provide a warranty of ownership if any of the customer's background technology was used in the development, and should indemnify the developer against claims and damages in that regard.
12. Standard Clauses
There are certain boilerplate clauses that are included (in whole or in part) in all legal agreements:
- Procedure for giving notice by one party to the other party. It should always be in writing, and can be delivered personally, by mail (whether regular or registered/certified), by fax, or any of these.
- Governing law clause.
- Headings not to be construed as part of the agreement.
- Force majeure provisions.
- Severability of clauses, in the event that certain provisions are deemed invalid.
- No amendments unless agreed to by all parties.
- Schedules and attachments to form part of the agreement.
- Entire agreement, i.e. no other agreement exists between the parties with respect to the software development.
- Non-merger (survival) clause setting out which provisions will survive termination.
To get you started, you can find template software licensing and development contracts at MegaDox.com. These are fully editable templates which are easily customized to include all the details of your client transactions.