What to verify before you sign a development contract
The moment you have negotiating power with a supplier is before the contract is signed, and almost every unhappy engagement traces back to something that was assumed rather than written down at that moment. This is the list worth settling first: what you get at the end, what acceptance actually means, who owns what, and what happens when the estimate turns out to be wrong.
- Name the handover artefacts as deliverables, not as a promise.
- Make the acceptance test something a person on your side performs.
- Settle what happens when the estimate is wrong before it is wrong.
- Confirm IP ownership covers the specification and the checks, not just the code.
Every item here is cheap to agree before signing and expensive to argue about afterwards.
The handover, named as deliverables
Not "documentation will be provided". List them:
- the specification the software was built from, current as at handover
- the automated checks, runnable on your machines
- a record of the decisions that would look wrong to a newcomer, with reasons
- a runbook: deploy, roll back, logs, alerts, expected failures
If these are not deliverables in their own right, the engagement can be complete without them, and asking afterwards rarely works.
An acceptance test somebody performs
Acceptance should not be a date or an invoice. Make it an action: a named engineer on your side makes a real, user-visible change while the supplier watches without helping.
If they can, you own the software. If they cannot, you own a dependency, whatever the IP clause says.
What happens when the estimate is wrong
It will be wrong sometimes. Decide now who pays for it.
Fixed price puts it on the supplier, which is why fixed prices carry a risk premium and why suppliers argue firmly against scope changes. Time and materials puts it on you. Neither is wrong; not knowing which one you agreed to is.
Ask directly: "if this takes fifty percent longer than you estimated, what happens to my invoice?" An answer that is not a plain sentence is a warning.
IP that covers more than the code
Confirm ownership covers the specification, the checks, and the decision record, not only the source. On an AI-native build the specification and the suite are the parts that make the code maintainable, and a clause that transfers only "the software" can leave them behind.
Also confirm there is no dependency on a tool or platform you do not have a licence to.
Security, stated as a control
"We follow best practices" is not a clause. Ask for the specific automated checks that run on every change, and what happens to a change that fails one. Veracode's spring 2026 testing put AI-generated code at roughly 55 percent secure without explicit guidance, so this belongs in a contract rather than in a conversation.
The support window after handover
Agree a period where the supplier answers questions rather than making changes. The moment they start making the changes again, the transfer of understanding stops and you are back where you started.
What you keep if it ends early
If the engagement ends early, by either side: what do you keep? Work in progress, the specification, the checks so far. Agreeing this while everyone is optimistic is much easier than agreeing it while they are not.
Where we fit
Reveneau suits this when
- You are about to sign with any development supplier
- The last engagement ended in an argument about what was included
Common questions
What should be in a software development contract handover clause?
What is a good acceptance test?
Fixed price or time and materials?
Does IP ownership of the code cover everything I need?
How long should post-handover support last?
What should I ask about security in a development contract?
What happens if the engagement ends early?
Why does the moment before signing matter more than after?
Sources
Marked independent where the source has nothing to gain or lose from the answer. Anything from the other party is their own account and is labelled as such.