Unlike buying an out-of-the-box or off-the-shelf software program, it’s more complicated to develop a custom software solution. When an individual or a company hires a software firm to develop a custom software solution, they both create and sign a legal contract known as the custom software development agreement.
This agreement includes the expectations of the client, duration to complete and supply the software, warranties, and maintenance, along with the ownership of legal rights to the software, disclosure of intellectual property, distribution of the software, and the compensation to the development team.
After creating hundreds of custom software development agreements, we’ve compiled this checklist of things we suggest you take into consideration when creating and evaluating your own contract. This checklist assumes that you are outsourcing the software development, but intend to own all rights to the code and intellectual property (IP).
Software Design and Development Processes
Design and development processes vary considerably depending on the size and expertise of the development team, the nature and complexity of the software, the demands of the client, and the development methodologies used. Nonetheless, there are a number of universally valid points that should always be addressed when preparing the software development agreement:
- Will there be a requirements document?
- What is the process of making changes to the software requirements after the contract is signed?
- What will your involvement be in the design and development process?
- What is the deadline for delivering the software?
- How much will the project cost?
Testing is commonplace in modern software development techniques, but it is also often an express requirement of software development agreements.
- Which specific tests will be used, and at what point or points must they be performed?
- How will the results of the tests be evaluated?
- What will be the consequences of that evaluation process?
- Will testing form part of a formal software acceptance procedure?
Intellectual Property Rights and Licensing
Software is protected primarily by copyright laws, but some elements of your new software may be protected by intellectual property rights. Because using software always involves copying software, the developer must grant a license to the customer or must assign the required intellectual property rights to the customer.
- What intellectual property rights exist in the software?
- Will the software be open source?
- Are any other third party licenses required?
- What licensing/charging model will be used, and how will this affect the drafting of the license itself?
- What will be specifically included/excluded from the license?
- Will you have any rights to modify the software and/or access the software source code?
Software Installation and Integration
Before use, software usually needs to be installed, configured, and migrated with other software systems. Because of this, it is important to clarify in the development agreement the extent of the developer’s obligations.
- Which party will install, configure, and integrate the software?
- How will technical challenges arising from this process be dealt with (and paid for)?
Warranties and Indemnities
Warranties and indemnities are used to assign risk to each of the parties in the contract. Warranties are promises that, for a specified period of time, the software will work as described in the software documentation; indemnities are compensations against damages or losses.
- Can the developer guarantee that the software will not infringe any third party intellectual property and will the developer be financially responsible if it does?
- Will there be specific warranties as to the performance, stability, or security of the software?
Some, but not all, software development firms and individual developers offer continued support. If yours does, this should be in the contract. This support can range from the very simple to the very detailed. If you plan to include support provisions in your agreement, you should consider the following questions:
- How will support be provided: by email, telephone, in person?
- What types of questions and problems will be covered by the support services?
- What if any limits will be placed upon the provision of support services?
- In what circumstances will support services be chargeable?
Training and Consulting
Typically, a software development agreement may provide for training and consultancy services, in addition to the core services.
- Will the scope of training services be defined at the outset, or subject to a later agreement?
Contract Variation and Change
Things change, which means contracts change. Contractual changes can be as simple as an exchange of emails, but you need to beware of the possibilities of accidental, unauthorized or ill-considered changes.
- Will you or your development team have any right to change the software specification or the contract?
Termination of the Contract
No one likes to think about failure, but it happens. And, it’s a good idea to proactively put your exit strategy in the contract.
- In what circumstances can the agreement be terminated?
- Does termination of the agreement imply termination of licenses in the agreement?
- Generally, which provisions of the agreement will survive termination?
- Will any charges be refunded in the event of termination?
- Will any additional charges be payable after termination?
The purpose of a software development agreement is to avoid disputes altogether, but sometimes they just can’t be avoided. Another important purpose, then, is to ensure that disputes are handled effectively.
- Will the parties submit to any form of alternative dispute resolution (such as mediation or expert determination)?
Software Development Agreement Round-Up
In short, it’s important to understand the implications of a software development agreement, not only regarding payment terms but also in behavioral terms.
Any contract that forces collaboration is the way to go. We often warn clients about shifting all of the burdens to either party. Working as a team is the only way to truly accomplish a win-win project. At SOLTECH, we strongly believe in teamwork.
Are you ready to find out how you can benefit from custom-built software? Drop us a line at firstname.lastname@example.org and let’s work together to create a perfect custom software solution, just for you.
Resource: The Checklist For Sharing Your Software Vision
Before you get started in developing your software app, your thoughts and ideas should be clarified and written down so they can be consistently and easily shared and understood. To help you get started on the right foot, we have created a checklist.
You can grab a copy of that checklist below and share it with your team!