If you followed our recommendations on selecting the software outsourcing company, you must have found the perfect development service vendor and are about to embark on your new project.
However, before the first line of code is written, there is one more important step to be made – signing the software development contract.
The software development services agreement defines the way your project is to be delivered and what you and your partner are going to receive after the contract completion. What is especially important is that the contract determines your and your partner’s actions and the responsibility in case of any dispute. In short, the contract defines the what, the when, the how, and, particularly, the how much.
In a way, the structure of a custom software development agreement is very similar to an agreement made for any other services. It should include such common sections as the termination conditions, dispute resolution, governing law, and so on. However, when it concerns software development, there are specific things that you should agree with your partner.
Relevant is an 8-years old software development company. We helped 200+ companies safely outsource their software development. Let's talk about your current needs and how we can help.Schedule a call
Table of Contents
Before we look into the specifics of software development contracts, let’s recall the basic types of contract that you can use.
This type of agreement is the most commonly used in development outsourcing. By signing such type of a contract, you agree to pay for the time your partner spends working on your project. The number of hours times the hourly rate, simple as that.
However, there are certain things you should take into account when signing a time and materials contract. The very nature of such approach suggests that you agree to pay more if the project takes longer than expected. Of course, you can control the development progress, especially, when your vendor uses the Agile methodology. With Agile, you are going to get a demo of the completed features once every two weeks and can estimate the remaining time fairly well.
The time and materials approach ensures that the vendor is not rushed to complete the project within a specific time, thus, they will maintain high quality of development.
Besides, a time and materials contract is easier to kick off, as it requires less preliminary preparation and planning. However, be prepared to making changes en route.
Fixed bid contracts define, on one hand, the scope that should be delivered, and, on the other hand, the fixed price that is to be paid. This type of agreement is best suited for contracting vendors for small tasks. Fixed bids are very common on freelance platforms where the customer posts the tasks and the price they are prepared to pay.
However, you can use this approach in your relations with a development company, too. For example, you can sign a fixed bid contract for the test task that you want your vendor to complete. Usually, test tasks require building a specific feature or component, thus it will be relatively easy to plan and budget it.
With a larger project, a fixed bid contract may not work very well, as it is poorly suited for making changes. When you choose a fixed bid agreement, you need to do a lot of extremely detailed planning to take care of every little thing in your project. Thus, you may take much longer to get started when you select the fixed bid model.
Besides, the developers may choose to use some less effective tools or procedures to stay within the budget.
Read how to write a software requirements specification document.
The fixed budget contract is a variety of fixed bid. In this model, the project budget is also agreed before the start, however, the scope can change as the development progresses. The main idea is that the developer should stay within the agreed budget and create as much as possible.
The fixed budget model is not a good idea for a large project in which a certain product is to be created. However, using this approach may help when the budget is tight. The development company will prioritize the scope so that the core features are definitely included, while some expensive “bells and whistles” may be left out until the next release or for good.
This model also involves setting a definite budget, however, the development company gets the bonus for delivering the projects ahead of the schedule. While you may be more or less sure about the budget, there is a risk that the vendor may sacrifice the development quality for time. However, the bonus may also encourage the development team to work as efficiently as possible.
Now that we have sorted out the possible contract types and their strengths and weaknesses, you should already have an idea of the one that suits both you and your vendor best.
Let’s proceed to the contract and see what points that are specific to software development you should include.
The contract should describe the development services that you expect your partner to provide. Usually, this section of the contract refers to the specification that is an integral part of it. The specification should clearly state the project scope that is to be delivered. Try to issue the specification in as much detail as possible to protect both you and your partner from disputes.
The Services section should also describe the procedure of making changes to the scope. The good practice is to state that any changes proposed by either party should be made in writing. We recommend that you include the statement that any change request should contain the following:
Read more about Master Service Agreement in software engineering.
This section fixes your agreements as to the time and cost required to complete the project. In other words, it describes the contract model you have selected. State the hourly rates, development phases, milestones and their deadlines.
Here, you should also provide the responsibility for delays by both parties. If you have agreed on partial payments depending on the development progress, include that point too. You may refer to annexes to the contract, such as payment schedules or development plans. Just make sure all supplementary documents are signed by both parties.
Specify whether the acceptance testing is to be done on your side or on the side of your vendor. Usually, acceptance testing is done at the end of each development phase, thus, this section may also refer to the detailed project plan.
In the context of acceptance testing, the contract should state:
This is one of the most important sections of your contract. The software developed as the result of the project is the property of the customer, and the contract should clearly state that. Particularly, make sure to include the following provisions in your contract:
At the same time, the development company may only reassign the rights to the property that they created. If any open-source tools were used, they will remain public.
Read more about RFP and Statement of Work document.
While the Confidentiality section is typical for most service contracts, in the information technology sector it is especially relevant. Specify the information that is considered confidential and the responsibility for its disclosure.
In most software development contracts, the confidentiality provisions survive the agreement itself, that is, the confidentiality should be maintained even after the contract completion.
We hope we have managed to help you get a better idea of what to think about while preparing a contract with your vendor and now you know how to successfully outsource IT development. At the same time, we do recommend getting a lawyer’s advice on this matter. While the contract type, project scope, testing and IP rights are discussed between you and your vendor, the lawyer will be able to check the legal aspects of the document.
There are many custom software development contract templates online that you can use to draw a simple software development contract. However, always read the template through to make sure it fully corresponds to your conditions. Again, have the lawyer look at it to verify that it contains no hidden clauses or terms that are irrelevant to you.
Signing the contract means that your relationship with the software development vendor is now official and that your partner can start writing the code for your product. If both parties treat their agreement fairly and are focused on its success, the contract is definitely going to be completed to the benefit of both yourself and your vendor.
Contact us if you need professional development services. We will help you choose the most optimal agreement model and work together with you on planning the project scope.
Check our case studies for the successful projects that we have delivered. We will be happy to work with you!
Do you know that we helped 200+ companies build web/mobile apps and scale dev teams?
Let's talk about your engineering needs.Write to us