The default rule you need to know

In most common law and civil law jurisdictions, copyright vests automatically in the creator of a work — not in the company that commissioned or paid for it. This applies to software. If your software development agreement does not contain explicit IP assignment language, the developer retains copyright in the code they wrote, even if you paid for it in full.

This is not a theoretical risk. It becomes a real problem when: a developer refuses to update code they own; a company is acquired and the buyer discovers the target does not actually own its core technology; an investor's due diligence reveals defective IP ownership; or a departed freelancer claims copyright infringement when their former client modifies the code.

Assignment vs licence

There are two ways to structure IP rights in a development agreement. An assignment transfers ownership of the IP to you — you become the copyright holder. A licence leaves ownership with the developer but gives you permission to use the IP under defined conditions (exclusive or non-exclusive, for a defined territory and period).

For most commercial software development, an assignment is the right structure. Licence arrangements make sense in limited circumstances: when using a developer's pre-existing library or framework under open-source or proprietary terms, or when engaging a firm that explicitly retains IP but grants broad exclusive licences.

What a proper assignment clause contains

An effective IP assignment clause in a software development agreement should cover: a clear definition of the work product being assigned (source code, object code, documentation, tests, design assets, data structures); the assignment of all intellectual property rights in that work product, including copyright, moral rights to the extent waivable, and any patent rights; confirmation that the assignment is worldwide, perpetual, and irrevocable; the timing of assignment (best practice: assignment occurs upon delivery and full payment, or upon delivery alone if you want to avoid dependency on payment for IP ownership); a warranty by the developer that the work product is original, does not infringe third-party rights, and that the developer has the authority to make this assignment (important if the developer is a company with its own employees).

Pre-existing IP and third-party components

Most developers use pre-existing libraries, frameworks, and tools. A development agreement should address this by: requiring the developer to disclose all third-party components used; confirming that those components are licensed under terms compatible with your intended use; and distinguishing between developer-owned pre-existing IP (which should be licensed to you, not assigned) and newly created work product (which should be assigned).

Employees vs contractors

For employees, the rules differ by jurisdiction. Under US law, works created by employees within the scope of employment are typically "works made for hire" and owned by the employer from creation. Under UK law, the same principle applies for employees but not contractors. In Germany and France, moral rights cannot be fully waived, and assignment must be explicit. Always verify the applicable law for each jurisdiction where you have developers.

Fixing past agreements

If you have existing agreements without proper IP assignment language, they can be fixed with supplemental IP assignment agreements. These are simple documents in which the developer confirms the assignment of all rights in previously created work product. Execute these before a fundraising round or M&A process, not during one — the timing creates negotiating leverage issues.