IT & Tech

Drafting a Software Development Agreement: Intellectual Property Protection and Essential Clauses

A software development agreement is perhaps the most important document you sign when engaging a development team, or when accepting […]

A software development agreement is perhaps the most important document you sign when engaging a development team, or when accepting an engagement as a development team. In practice, however, parties frequently sign agreements that are far too brief and ambiguous, which later become the source of costly disputes — particularly when the relationship between the client and the contractor becomes strained.

This text is informational in nature and does not substitute for individual legal advice.


Why Are Software Development Agreements Different?

Unlike agreements for the delivery of physical goods, software development is a creative, iterative, and intangible process. The work product — source code, documentation, design — falls within the domain of intellectual property (IP). The general rule of copyright law is that copyright vests in the author, not in the party who commissioned the work. The Serbian Law on Copyright and Related Rights (Zakon o autorskom i srodnim pravima, ZASP), however, contains a special rule for computer programs created on commission: the client acquires the exploitation rights to the program, unless the agreement provides otherwise, while moral rights remain with the author. Comparative legal solutions differ in this regard — in many jurisdictions, copyright in commissioned software remains with the developer if the agreement does not provide for an assignment — and parties should therefore not rely on statutory default rules without an explicit contractual clause, particularly in cross-border engagements.

Without an explicit clause providing for an assignment of rights or the grant of a licence in the agreement, the scope of the client’s authority to freely use, modify, or sublicence the software it has funded remains a matter of interpretation — a frequent source of disputes.


Defining the Scope of Work

The foundation of every development agreement is a precise specification of what is to be delivered. Vague formulations such as “web application development” can lead to endless disputes about whether a particular feature was included in the agreed price.

A quality scope of work specification should cover: a feature list with user stories or technical requirements; technical specifications (technology stack, integrated third-party systems, performance requirements); acceptance criteria for each deliverable; and a timeline with milestones.

The agreement should also contain a clear change management process — a procedure for agreeing on changes to the scope of work after the fact, always in written form and with agreement on the impact on price and deadlines.


Ownership of Source Code and Assignment of IP Rights

This is the most critical clause in any software development agreement. There are two basic models:

Assignment of copyright: All economic (patrimonial) copyright in the code created during the engagement is transferred from the contractor to the client upon payment of the fee. This is the model most commonly sought by clients. The clause must be explicit, as copyright agreements effecting an assignment of economic rights must, as a rule, be concluded in written form under the Serbian Law on Copyright and Related Rights.

Licensing: Instead of a transfer of ownership, the client receives a licence to use the software. The licence may be exclusive or non-exclusive, time-limited or perpetual, territorially restricted or global. This is a model frequently preferred by IT agencies, as they retain ownership of code that can be reused.

A separate issue is the treatment of pre-existing code (pre-existing IP) — libraries, modules, or components that the developer brings into the project and that were created prior to the engagement. These components should be explicitly listed in the agreement, and the licence permitting the client to use them within the delivered software should be clearly defined.

Open-source components should also be considered: if the software uses libraries under the GPL (GNU General Public License), this may have implications for the ability to commercially distribute the final product.


Confidentiality and Non-Disclosure (NDA)

A software development agreement should almost always contain confidentiality provisions, or a separate NDA (Non-Disclosure Agreement) should be signed alongside it. During the course of the engagement, the client discloses trade secrets, business plans, customer databases, and technical architectures to the contractor. The contractor, in turn, may have confidential technical processes and methodologies.

The confidentiality clause should define: what constitutes confidential information; which information is excluded (publicly available information, information received from third parties); who has access to confidential information (subcontractors, employees); the duration of the confidentiality obligation; and the consequences of a breach.


Warranties, Liability, and Limitation of Liability Clauses

The agreement should address:

Warranty of conformity: The period during which the contractor undertakes to correct defects in the delivered software free of charge. The customary period ranges from 30 days to 12 months from handover, depending on the scope and complexity of the project.

Limitation of liability: Almost every professional software development agreement contains a clause limiting the contractor’s maximum liability to the value of the agreement or a specified multiple of the monthly fee. Without this clause, the contractor would be exposed to potentially unlimited liability for consequential damages.

Liability for infringement of third-party rights: The contractor should warrant that the delivered code does not infringe the intellectual property rights of third parties, and that it will indemnify the client against any third-party claims arising therefrom.


Frequently Asked Questions (Q&A)

Can the developer retain the right to display the code it developed in its portfolio? Yes, provided this is explicitly agreed. The typical solution is that the developer may reference the project in its portfolio but may not publish the code itself if it is classified as confidential. This should be addressed by a specific provision.

What happens to the rights in the software if the agreement is terminated before completion? This is a matter that must be explicitly regulated. The customary approach is that the client acquires rights over paid deliverables, while unpaid work remains the property of the contractor.

Is it sufficient to sign a quotation or pro forma invoice as an agreement? A quotation or pro forma invoice is not a substitute for an agreement. They address price and describe the service, but almost never contain provisions on IP rights, confidentiality, warranties, and limitations of liability. In the event of a dispute, this leaves both parties without a clear legal framework.

What is a non-competition clause and is it enforceable? A clause by which the developer undertakes not to work for the client’s direct competitors for a specified period is lawful, but must be reasonably limited in duration and geographical scope to be enforceable. Overly broad clauses may be declared null and void by the courts.


Conclusion

A software development agreement is a document that protects both parties. Clients without a clear IP arrangement risk uncertainty regarding the scope of rights over the product they have funded. Developers without a limitation of liability clause are exposed to disproportionate risks.

Investing in a well-drafted agreement before development begins pays off many times over compared to the costs of a potential dispute.

Schedule a consultation with our team — we draft tailored software development agreements for clients and IT firms.


Sources: – Law on Copyright and Related Rights of the Republic of Serbia (Zakon o autorskom i srodnim pravima, Official Gazette of the RS, nos. 104/2009, 99/2011, 119/2012, 29/2016 — Constitutional Court decision, and 66/2019) – https://www.wipo.int/portal/en/index.html – https://www.lexology.com/library/detail.aspx?g=ea21e355-081e-451d-b333-6a3f25c74261 – https://www.abacuslaw.com/blog/software-development-agreement-key-provisions/

The content of this website is informational and does not constitute legal advice. For specific legal advice, contact a lawyer directly. The firm operates in accordance with the Law on the Legal Profession and the Code of Professional Ethics for Lawyers.

Scroll to Top