Skip to content
← Back to the blog
software development

Contrato de desarrollo de software: Key Clauses to Review

Before you sign, check who owns the code, how milestones are paid, what the warranty covers, how confidentiality works, and how to exit.

By Equipo Devonauts5 min read
A woman works on a laptop showing code at a round table with a coffee cup, phone and glasses

Most teams spend weeks comparing portfolios and a few minutes on the contrato de desarrollo de software — the software development contract itself. That is backwards. The contract decides who owns the code, when money changes hands, what happens when something breaks, and how you leave if the project stops making sense.

This is a working checklist of the clauses that matter most in custom software, apps, API integrations, and AI features. It is written for the business side of the table; a lawyer should still review the final draft under your local law.

Code Ownership: What You Actually Receive

The most expensive mistake is assuming that paying for development means owning the result. In many jurisdictions, copyright starts with the person who wrote the code unless the contract assigns it in writing. Look for an explicit assignment clause, and check three details.

When does ownership transfer?

Assignment should take effect when the invoice for that milestone is paid — not when the contract is signed, and not at the end of the whole project. If you stop halfway, you should still own what you paid for.

What about the studio's existing code?

Every studio brings background components: its own libraries, templates, internal tools. It is reasonable for the studio to keep those and give you a perpetual license to use them inside your product. It is not reasonable for the same clause to cover the custom work.

Which third-party pieces are inside?

Ask for a list of open-source libraries and third-party services with their licenses; a copyleft component or a paid API can shape how you distribute the product and what it costs to run. Put that list in an appendix to the contract, not in an email. If your first version came out of an AI tool, ownership gets murkier — we go deeper on that on our vibe coding page.

Milestone Payments: Tie Money to Something You Can Inspect

"The project" is not a milestone, and "payment on completion" is not a date. A workable schedule splits the build into phases you can inspect and ties each invoice to the acceptance of that phase.

What a milestone should state

  • The deliverable in plain language — for example, "registration and login working in staging".
  • Who accepts it, and what "accepted" means.
  • How long acceptance takes and what happens if nobody responds.
  • What is explicitly out of scope for that phase.

Keep the first payment proportional to the work needed to reach the first demo, and hold a final payment until handover is complete: repository, credentials, and documentation in your hands. Our custom software development page describes how we phase a build.

How change requests are priced

Scope changes are normal. The clause that matters is the process: every change goes in writing, gets an estimate, and is approved before it is built. Without that, small adjustments quietly consume the budget and milestone dates stop meaning anything.

Warranty and Acceptance: Defining "Done"

A software warranty is not a promise that nothing will break. It is an agreement on what counts as a defect, how long the studio fixes defects, and what is excluded. Read it together with the acceptance clause, because together they decide when the project is finished.

Acceptance: the clause people skip

Set a defined acceptance window and written acceptance criteria. Watch for "deemed acceptance" — a clause that accepts the deliverable automatically if you do not object within a few days. A busy month on your side can close a phase you never tested.

Defect or change request?

Write the difference into the contract. A defect is something that does not work as specified; a change request is something that was never specified. If the line is blurry, every bug conversation becomes a pricing conversation. After the warranty period, fixes and improvements need their own arrangement — we describe ours under software maintenance and support.

Confidentiality and Data Handling

Confidentiality is usually signed early as a standalone NDA and then forgotten. Bring it back into the contract with three additions.

Make it mutual: you share business information, the studio shares technical detail. Make it survive termination for a stated period. And cover data — if your users' personal data passes through the studio's environments, the contract should say what is stored, where, for how long, and who can access it.

Confirm too that production accounts — hosting, app store, payment provider, database — are created in your company's name, with the studio added as a collaborator. Access is granted and revoked; ownership never moves.

Exit Terms: Leaving Without Losing the Project

Every contract should describe a clean exit, even when nobody expects one. Look for:

  • Termination for cause, with written notice and a cure period, so a small issue does not end the project immediately.
  • Termination for convenience, with the notice period and how finished work is paid.
  • Handover obligations: source code, repository history, credentials, architecture notes, deployment steps, and transfer of third-party accounts.
  • Transition support, such as a defined number of hours to help another team take over.
  • What survives the contract: confidentiality, ownership of paid work, liability terms.

Without an exit clause you are relying on goodwill — common in this industry, but not something you can hand to a lawyer when a project stalls.

FAQ

Who owns the code if a developer wrote it?

By default, in many jurisdictions the author or the studio holds the copyright. Ownership moves to you only through an explicit written assignment, so check that clause and check when it takes effect.

Is a warranty the same as free maintenance?

No. A warranty covers defects against the agreed specification for a limited period. Maintenance covers fixes, updates, and improvements after that period, usually under a separate agreement.

Can we reuse the same contract for the next project?

The legal skeleton can be reused; scope, milestones, and acceptance criteria cannot. Those belong to the specific project and should be rewritten each time.

Let's Read Your Contract Together

If you are about to sign a development agreement and want the scope, milestones, and ownership clauses read by the people who will build the software, tell us what you need. If the product is already half built — by a previous team or by an AI tool — send the repository and the contract, and we will tell you what needs attention first.

Still stuck with your app?

Run the free health check on your app's URL, or get the $299 App Rescue Audit: a senior engineer reviews the code and sends you a written report in 2 business days.