Software development agreement checklist

The article is a part of Code Inspiration’s software development outsourcing Knowledge Base.


Software development agreement is basically an official document that is created and signed by both customer and executor, in the given case – a software development company.

A software development agreement’s goal is to ensure both:

  1. executor’s obligation to carry out software development works or services
  2. customer’s obligation to accept and pay for the works or services.

A software development agreement also ensures rights of parties, for example, the right to terminate an agreement upon written notice to another party.

So let’s talk about a software development agreement in this article. We will not provide you with a ready agreement’s template, however, we will do our best to explain its integral parts, what exactly should be in a software development agreement.

Software development agreement. Basic aspects

First of all, there are 4 integral points of any software development agreement, namely mandatory clauses of an agreement. Without these aspects the contract is considered to be void:

  1. Subject of a software development contract
  2. Parties to the contract
  3. Cost
  4. Term

In general, the structure of the contract is as follows. So, any software development agreement must contain:

  1. Title and number of the agreement. 
  2. Agreement date.
  3. Place of agreement’s signing – name of a city.
  4. Introductory part, which lists the organizations of the customer and the executor, forms of incorporation of organizations, full names of persons who represent them and their titles. The fact of the conclusion of the contract is indicated in this part also.
  5. Subject of the agreement. Be it, for instance: software development services, dedicated software development team or software maintenance and support.
  6. Order of execution of the agreement. Here parties of a software development agreement indicate, for instance, what resources the executor is obliged to allocate for the needs of the agreement. 
  7. Cost of work and payments. Everything regarding the financial part is stated here. Integral parts of this section are the following: agreement’s currency, total cost of works or services, payment schedule. Also, if the agreement is for Time&Material model of works, the rate per hour will be indicated here. Additionally, parties can indicate sanctions if the Customer postpones payment(s).
  8. Obligations of parties is the next section. In this section parties simply agree that an executor has to perform works or services in full and on time, and a customer, in its turn, has to accept and pay for the works in full according to the schedule. Usually there is also a point that an executor is obliged to inform the customer on his request of all the data in the course of execution of the order. Therefore, a customer is obliged to provide the executor with the necessary information for work so that to ensure proper development process.
  9. Rights and responsibility of parties. Here parties to a software development agreement agree on the fact that property rights of the works should belong solely to the customer after full payments. Here parties also proclaim that any changes to the agreed works should be agreed by both parties and approved in writing. What’s more, force majeure circumstances and relief of responsibility in their case for both parties are proclaimed exactly in this section. Sometimes parties can also agree on forbiddance to assign fulfillment of the given agreement to any other party.
  10. One more section is about order of disputes resolution and the applicable law. In this section parties agree that  all the disputes and controversies connected with the agreement should be settled by the parties by means of negotiations and consultations. And only in case parties do not manage to achieve consent, they can address court or an arbitrator. Applicable law is also selected in this section, usually parties agree on the law of the customer’s country.
  11. Agreement term, change and cancellation of the agreement. Any software development agreement should contain both the date of signature, as well as term of validity. Usual practice here is that usually parties sign a contract for a year and add a statement that prolongs the agreement automatically by the same period in case none of the parties notified another party of the intention to terminate the agreement. Parties are also able to mention the possibility to register and sign supplementary agreements here. With supplementary agreement parties can “edit” the initial agreement and update its provisions, for instance, term, cost of works, scope of works, payment schedule, software development team composition and so on.
  12. The latest point of a software development agreement is Miscellaneous. Briefly about this paragraph: copy of an agreement for each party with similar legal force, possibility to sign this agreement and other related documents via internet, emails of both customer and executor to send official notifications, agreement of parties that any correspondence between them has legal force equal to the agreement, and other aspect agreed by the parties.
  13. The last point is essential details of parties. It contains, for all the parties: company official name, registration or taxpayer number, legal address, banking details. representatives of each party, whose names are indicated in the introductory part, place their signatures below essential details.

Other aspects of a software development agreement

Let’s also explain some other aspects that may be indicated in a software development agreement:

  • Contact person. Sometimes a customer and a software development company decide to indicate a contact person to whom a customer will address in case of questions, requests or claims.  
  • Acceptance reports are one more aspect. When you order software development services in a company from the Eastern Europe or CIS region, you as a customer will be asked to sign acceptance reports after each reporting period of works. Indeed, in Western countries there is no such a document, however, in some CIS countries this document is among primary accounting records. Acceptance reports should be signed by both executor and customer. However, some software development companies are not obliged to request customer’s signatures. For example, there are special conditions for software development companies here in Belarus – if a company is a member of the Belarus Hi-Tech park, it has a set of policy favors, including no need to request customer’s signature on acceptance reports.
  • Non-disclosure obligations. Some software development agreements contain a paragraph with an obligation for an executor not to disclose any information related to the client’s project. Actually this point is not so important because usually parties sign a separate NDA at the beginning of the dialogue. 

Final thoughts

Software development agreement is an extremely important document for both executor and customer. No agreement means no obligations. 

Usually a software development company has an agreement template which contains mentioned points and, at a certain stage, they will send it to you for review and signing. The only advice here is to read it carefully and make sure that it contains every single aspect you agreed on previously.

After the agreement was signed and the project started, there is sometimes a necessity to change something. For these needs, a client and a software development company can sign a supplementary agreement.


The article is a part of Code Inspiration’s software development outsourcing Knowledge Base.