The building blocks of a Master Software Development Agreement

In this article, we have a look at some of the important aspects that must be kept in mind when drafting a Master Software Development Agreement

The Master Software Development Agreement provides the framework within which the Customer engages the Developer.

The Parties to the Master Software Development Agreement will also agree on Statements of Work which detail the Service that the Developer will provide.

The Master Software Development Agreement can be agreed to before any Statements of Work are concluded.


Scope of the engagement

The scope will typically include the general terms of engagement which may include the design, development, creation, testing, delivery, installation, configuration, integration, and customisation of the Software.

The scope may also address general support, maintenance, and training the Developer will need to provide to the Customer.


Contract management

For larger projects, it is important to have structures and processes in place to manage the contract effectively. 

Under contract management, change control will be dealt with – For example, how the process will work if a change to the agreed Specification is required.

The Parties may also agree to establish a Steering Committee overall supervision of each Party’s performance and the direction of the activities under this Agreement.


Acceptance testing

The Developer is responsible for delivering the Software Deliverables as per the Statement of Works, which may detail certain Functional and Technical Specifications. 

Testing needs to take place to ensure that the Software meets the Specifications agreed to.

The acceptance testing provisions will detail the process that must be followed after delivering a Software Deliverable, what happens if there are Non-Conformities, and what if there are repeated failures of Acceptance Tests.


Intellectual property

The Software created will constitute intellectual property which the Customer generally owns. However, the newly created intellectual property is usually not the only intellectual property that must be dealt with in the Master Software Development Agreement. 

To create the new intellectual property, the Developer needs to use its know-how, existing software and other intellectual property (Background Intellectual Property) to create the new intellectual property (Foreground Intellectual Property).

The Master Software Development Agreement will need to stipulate the terms of the Background Intellectual Property licence that the Developer will provide to the Customer to enable the Customer to use the Foreground Intellectual Property without any infringement.

Read more on building intellectual property clauses.



The payment provisions will detail payment terms, overdue amounts, method of payment, setoff, taxes, payment disputes etc.

Read more on building intellectual property clauses.



The Provider may be required to take insurance against, for example, cyber crimes. The insurance provisions should detail the type of cover to be taken out, the amount of cover required, what happens if there is a failure to maintain cover and obligations to produce certificates confirming cover. 


Audit rights

For a Customer, it may be difficult to determine whether or not the Provider is executing their obligations under the Agreement. Audit rights allow the Customer, or their authorised representative, to conduct certain audits.

With the audit clause, aspects often addressed include notices of audits, the number of allowed audits, confidentiality and what happens if there is an adverse finding.



Both Parties would generally want to protect such sensitive information, which, if disclosed to certain third parties, will be detrimental to their business. The confidentiality provisions provide which information must be regarded as confidential, obligations relating to handling confidential information, and what happens if there are unauthorised disclosures.

Read more on confidentiality clauses.


Limitation of liability

Unrecoverable losses and maximum liability are generally dealt with under the limitation of liability provisions. Unrecoverable losses may include, for example, consequential losses, and claims relating to breach of data protection provisions may be limited under the maximum liability amount to a fixed amount.

Read more on the limitation of liability clauses.



The Customer and Provider will usually provide certain mutual warranties. These may include, for example, that they have the legal capacity to enter into the Agreement and that they have not offered unlawful or prohibited inducements to the other Party or any other person in connection with the Agreement.

Then there will also be warranties that relate to the Software.

Typical warranties will include that the Software will perform in conformity with the Specifications, it will not contain viruses, it will not contain any copyleft licences etc.

Breach of the warranties will also need to be addressed, and the disclaimers which will apply will also need to be included.

Read more on warranty clauses.



An indemnity that you will often find in Master Software Development Agreements is an indemnity relating to Intellectual Property infringement claims.

The indemnity provisions need to identify what will be regarded as indemnified losses (what will be covered), what will trigger the indemnity and the claims procedure.

Read more on indemnity clauses.


Data protection

Data protection may include data security and data privacy provisions. 

Read more on data protection clauses.



How will the Parties deal with disputes? Through a Court process or alternative dispute resolution? Are there different processes for different disputes – For example, expert determination for disputes relating to the Software Deliverables?

Read more on dispute resolution clauses.


Term and termination

The Parties may conclude the Master Software Development Agreement for a fixed term. There may also be auto-renewal of the term, which must also be detailed within this clause.

The termination provisions detail when a Party can terminate the Agreement before the Term ends and may also provide for termination assistance that the Developer must provide if the Agreement is terminated.

Read more on data protection clauses.


Boilerplate provisions

The boilerplate clauses will include the provisions relating to public disclosure, third party beneficiaries, how amendments will be dealt with, how notices under the Agreement must be provided, assignment etc.

Table of Contents

The Author

Martin Kotze is a commercial lawyer with over 10 years of experience. He specialises in transactional work within the Tech, Financial Services and Property industries. 

He is also one of the co-founders at DocNinja and regularly advises listed companies to small and medium enterprises on how to contract better with their customers. 

Martin Kotze

This is a free 30min consultation to better understand your business and your needs.

Schedule a call with a Solutions Specialist

+27 82 891 3029