A software development agreement sets out who builds what, by when, for how much, and, most importantly, who owns the finished code. That last point is where companies lose the most: paying for software does not automatically make you the owner of it. This guide shows you what the agreement must include, how scope, milestones, and acceptance fit together, the intellectual-property trap that catches almost everyone, and gives you a clear structure you can copy.
A software development agreement defines the scope, deliverables, timeline, payment, acceptance criteria, warranties, confidentiality, and the ownership of the code. The clause that matters most is intellectual property: under U.S. copyright law, code written by an independent contractor belongs to the contractor by default, and software cannot be made a "work made for hire" just by saying so. To own what you paid for, the agreement needs an express copyright assignment. Use milestones tied to staged payments and clear acceptance tests, and pick a pricing model (fixed price, time and materials, or milestone-based) that matches the project's certainty.
This article is general information for a U.S. audience, not legal advice, and the rules vary by state and by project. For a high-value build or a dispute, have a technology attorney review the agreement.
You might also like:
- App Development Agreement Template (Free)
- AI Contract Review Software: What It Does
- Business Requirements Document (BRD): The Guide-the-legal-strategic-must-have-for-2025-projects)
What is a software development agreement?
The agreement does three jobs at once. It defines the work so both sides share one definition of "done," it sets the money against milestones, and it settles ownership and risk before any code is written. Skipping the third job is what turns a successful build into a legal fight.
When do you need one, and who benefits most?
Typical situations:
- A startup hires a freelancer or agency to build its product.
- A company commissions custom software, an app, or an integration.
- A developer or studio takes on client work and wants scope and payment locked.
- A project involves confidential data, third-party code, or regulated information.
The bigger the build and the more valuable the code, the more the agreement is worth.
What should a software development agreement include?
| Clause | What it should say |
|---|---|
| Parties | Full legal names of the client and the developer or agency |
| Scope and deliverables | The software to build, referenced to an attached specification |
| Milestones and timeline | Phases, interim deliverables, deadlines, and the final date |
| Payment | The amount, the model, and how payments tie to milestones |
| Acceptance and testing | The test criteria, the fix window, and what failure triggers |
| IP ownership | An express assignment of the code and related IP to the client |
| Warranties | That the work is original and will perform as specified |
| Confidentiality | Protection of each side's confidential information |
| Indemnification | Who covers third-party IP claims, and the liability cap |
| Termination | How either side can exit, and what happens to work in progress |
The clause people skip is acceptance, and the one they get wrong is IP ownership. Both are covered below.
Who owns the code? The work-made-for-hire myth
This is the single most expensive misunderstanding in software contracts. A client assumes that because they funded the build, they own it. But absent an assignment, the developer holds the copyright and the client has, at best, an implied license to use it, which is far weaker than ownership.
The Supreme Court drew this line in Community for Creative Non-Violence v. Reid (1989), using common-law agency factors to separate employees from independent contractors. The practical takeaways for a software agreement:
- An employee's code is generally a work made for hire, so the employer owns it.
- An independent contractor's code is not a work made for hire by default, and software is not an eligible commissioned category, so a "work made for hire" label alone does not transfer it.
- The reliable fix is an express assignment: the developer "assigns all right, title, and interest" in the deliverables to the client, often effective on full payment.
How do scope, milestones, acceptance, and payment fit together?
| Element | What good looks like |
|---|---|
| Scope | A detailed specification attached as an exhibit, not a one-line brief |
| Milestones | Phases with a deliverable, a deadline, and acceptance criteria each |
| Acceptance | A defined test, a defect-reporting process, and a fix window |
| Change orders | A written process to price and approve scope changes |
| Payment | Released per accepted milestone, with a final holdback on acceptance |
A change-order process matters as much as the original scope. Most disputes are not about the first spec; they are about the changes nobody priced.
Fixed price, time and materials, or milestone-based?
| Model | Use it when | Who carries the overrun risk |
|---|---|---|
| Fixed price | The scope is well defined and stable | The developer |
| Time and materials | The scope is uncertain or will evolve | The client |
| Milestone-based | The project breaks into clear phases | Shared, phase by phase |
Whatever the model, write it into the payment clause and tie it to the milestones and acceptance tests so there is no gap between "delivered" and "paid."
The clauses most agreements miss
- Source-code escrow: who holds the code and when the client can access it, useful if the vendor disappears.
- Open-source and third-party components: the developer discloses them and warrants license compatibility.
- AI-assisted code: ownership is clear and the developer stands behind what their tools generate.
- Warranty: the software will conform to the spec for a defined period, with a remedy if it does not.
- Indemnification and a liability cap: who covers a third-party IP claim, and the ceiling on damages.
Common mistakes to avoid
- Starting work on a purchase order or email thread with no real agreement.
- Writing a one-line scope instead of an attached, detailed specification.
- Relying on "work made for hire" language instead of an express IP assignment.
- Leaving acceptance undefined, so "done" is whatever each side wants it to mean.
- Having no written change-order process, so every change becomes a fight.
Frequently asked questions
Who owns the code in a software development agreement?
Is software a "work made for hire"?
What is the difference between an assignment and a license?
What should the scope section contain?
How should payments be structured?
What is acceptance testing?
What is source-code escrow and do I need it?
Do I need a lawyer for a software development agreement?
Sources and references
- 17 U.S.C. §201, Ownership of copyright, and the work-made-for-hire definition (Cornell LII).
- Community for Creative Non-Violence v. Reid, 490 U.S. 730 (1989), on employee vs independent-contractor authorship.
- U.S. Copyright Office guidance on works made for hire and the nine eligible commissioned categories.

