Andrew
Burak

Documents in Software Development Outsourcing You Absolutely Have to Know About

#Dedicated teams

So, you decided to outsource software development. Congrats! But how can you make sure your product is protected? And how do you establish the terms of the partnership? The short answer is with the help of documents like NDA, MSA, SOW, and DPA. Taking your time to prepare these documents will help you establish the required terms, specify the responsibilities, the rights, and other collaboration terms.

Key Documents in Software Development Outsourcing

Let’s take a look at the basic documents for software development outsourcing. We will also define the key terms that can often be confusing or misleading. This will help you arrange a business relationship that is safe for both parties.

Non-Disclosure Agreement (NDA)

One of the primary documents at the initial stage is a Non-Disclosure Agreement or NDA. This agreement is signed if two companies (or a company and an individual) are going to exchange sensitive information. An NDA is signed to protect this information from being disclosed.

An NDA should contain the following:

  • A clear definition of confidential information. All materials have to be determined as confidential or non-confidential. Information like processes and procedures, development strategies, passwords, customer databases, architecture, prototypes, source code are usually confidential.
  • Confidentiality term. Make sure to determine the time frame for keeping information confidential. The period has to be long enough to keep your business safe but not too long not to scare away the other party. The confidentiality term usually varies from one to three years in the software development and outsourcing business. 
  • The disclosures/representatives clause. You should explicitly state with whom the confidential information can be shared. Are these people employees, business partners, freelancers? Don’t forget to include them in the NDA.
  • The use of confidential information. It’s important to indicate how sensitive information can be used.
  • Legal obligations to disclose. Any NDA is written to protect information disclosure. However, sometimes, it is required for legal proceedings or, in other cases, determined by the valid legislation.
  • The return or destruction of confidential information. This section determines what each party should do with sensitive information after the collaboration is over. Consider all information bearers: USB storage devices, CDs, copies, hard drives, servers, and so on. 
  • The remedies clause. It indicates how a party that breaches the NDA should compensate for the disclosure of sensitive information.

Master Service Agreement (MSA) 

A Master Service Agreement is signed if a company is going to work with a client repeatedly. This agreement allows to reduce legal expenses and facilitate the provision of services. Make sure to include the following clauses:

  • Provision of services. The order of providing services.
  • Acceptance and payment for services. The fees, taxes, timesheets, and other things related to the procedure or services acceptance and payments.
  • Term and termination. The time frame during which the MSA is valid and the conditions when it can be terminated.
  • Intellectual property rights and ownership: What intellectual property is and how it can be managed.
  • Confidentiality. What confidential information is and how to handle it.
  • Liability, warranties, representations. Party warranties, liability field, and representations (persons involved in the project: employees, partners who will be participating, etc.).
  • Indemnification. The parties agree on how they are going to indemnify any harm if caused to each other.
  • Notices. How the MSA will be delivered and which delivery notifications you are going to receive.
  • Miscellaneous. Disputes and their resolution, data protection, governing law, benefit, assignment, amendments (indicate that there should be no amendments or modifications without being signed by the mentioned party), the severability clause (if any provision of the agreement is unenforceable, it doesn’t cancel the enforceability of other provisions of the agreement).

Statement of Work (SOW)

A Statement of Work is one of the most crucial documents in the software development business. This is where parties identify the details connected with the project, describe project stages, the features, acceptance criteria, risks, and so on. 

In the SOW, you should provide a CI/CD pipeline diagram, the schedule of development procedures (visits, communication within the project, approval, objection, reporting procedures and order, deploying, and closing the project). A Statement of Work should additionally include details like the list of devices, screen resolutions, browsers, and their versions used for testing purposes.

How to Choose a Software Development Company?
Download the ebook

In a special attachment to the Statement of Work, you can indicate information related to payment and payment models. Here, mention whether it is a fixed-price project or the company will pay for the time and materials applied. It’s also important to indicate the force majeure conditions, major risks, and their influence on the implementation of the current task or scope (not the entire project).

DPA (Data Processing/Confidentiality Agreement)

DPA, or Data Processing Agreement, is intended to regulate data processing by the parties as well as the relationship between the parties. It is an agreement between the data controller and the data processor. In the case of outsourcing, the contractor is the data processor, and the client is the data controller.

During software development, the vendor has access to the databases with customer data, processes, and stores it. That’s why it’s essential to agree on how this data is going to be stored, processed, protected.

Many companies ignore this document, but this is not our case. At Relevant Software, we have developed our own Data Processing Agreement template according to GDPR.

Details to Pay Attention to When Signing a Contract

The final and most crucial negotiation stage is the signing of the MSA and the SOW. These documents finalize the things that haven’t been settled for now. Let’s take a look at the typical contracts signed by vendors and the details you should pay attention to.

Fixed-Price Contracts

This kind of contract is the best option for smaller projects. With it, the requirements are strictly defined. Fixed-price contracts work perfectly when the client needs to develop a solution but doesn’t have the capacity or in-house resources. The vendor guarantees to deliver a particular solution based on the client’s expectations within a set budget and is entirely responsible for the project results.  

This contract type is not flexible, so it’s not frequently signed when it comes to software development. But if you are going to sign this kind of contract, determine every project detail. Make sure you agree on the pricing, the deadlines, the budget, and everything else that might be important.

The Dedicated Development Team Model

This is an optimal solution for a long-term project where the client hires a team of developers, pays a monthly fee, and manages the team. 

Being an extensively flexible model, it allows adapting to changes rapidly. And based on our experience, we can assure you that the dedicated development team contract is the most efficient for software development projects.

The Time and Materials Model (T&M)

The time and materials contract requires payment based on an hourly rate. This contract is signed when the client needs a specialist to work on a project for a particular time. This contract type guarantees the transparency and the cost-efficiency of any project.

Clauses of Outsourcing Contracts You Can’t Ignore

Payment Terms

Payment is a critical notion that has to be discussed at the very start of the negotiation. You have to be very clear about how much, when, and in what way the billing and the payments are processed. If a retainer is needed, it should also be indicated in the agreement.

In many cases, if a payment isn’t made on time, the vendor might stop providing services. It is inconvenient for both parties and can be avoided if all the details are defined clearly.

Liability & Warranties

Liability clauses are of particular importance in any IT outsourcing contract because they determine the extent to which both parties bear the responsibility. Make sure you check the liability cap: with it, parties mutually limit the liability of each other to some extent.

The liability cap helps to manage risks and control the financial exposure of a business.

The warranty clause is usually provided in a fixed-price contract. Within this clause, the vendor guarantees that products will be delivered within the deadline, and based on the client’s requirements.

Notice Periods

A notice period is the time frame given to make changes in the development team. Notice periods influence the project’s smoothness and the quality of its implementation.

There are two main kinds of notices:

  • The first one is connected with scaling the development team up and down. In this case, the notice period might vary from one to three months.
  • The second one is connected with the termination of the contract. This notice is crucial for a vendor to organize all the processes efficiently. Usually, it varies from one to five months for shorter contracts and from six to 12 months for longer contracts.

Confidentiality and Data Protection

In the contract, you should determine the data protection matters within the enterprise. Software outsourcing companies usually have high standards for the protection of sensitive data. Security control and policies have to be established and followed. The company should perform regular audits to make sure that all the procedures comply with the accepted standards.

Intellectual Property Rights

The contract should clearly state that the client is the owner of all the intellectual property that has been created during the project. If the payment has been delayed or wasn’t made, the vendor has the right to use any intellectual property that was not paid for.

Non-Solicitation Clause

In this clause, you should define the fees the client pays if they hire the vendor’s specialists. The same applies if the vendor’s employees are hired by a third party.

How to Increase the Performance of Your Remote Tech Team
Download the guide

A vendor spends a lot of resources to find, recruit, train a specialist. That’s why, if the specialist goes off to another company, the vendor should be compensated for it.

Another option is to agree on the conditions of how this collaboration will evolve.

Jurisdiction

In software development outsourcing services, the client and the vendor are located in different countries. So, it’s important to determine and agree upon the jurisdiction location in advance.

Summary

Finding an excellent software development vendor is hard. But considering all the collaboration details and arranging them into an exhaustive agreement that satisfies all parties is even harder. If a contract is poorly written, it might lead to a number of misunderstandings and issues that might influence the collaboration.

Take your time to prepare the documents. Make sure that your contract satisfies both parties, there’s an NDA, an SOW, and a DPA. They provide assurance in the vendor and guarantee that the product will be delivered on time according to the requirements. And if anything goes wrong, the parties will know what to expect and how to resolve the dispute.

Here at Relevant Software, we have the templates for all these documents. All our clients have to do is enter their contact details, and the documents are ready to be signed.

Right tech talent for your product

We provide companies with senior tech talent and product development expertise to build world-class software.

Contact us