Insights · 5 min read
What to put in a software development contract
By Austin Hunter ·
Most disputes over software projects come down to something the contract never said: who owns the code, what "done" means, or what happens when the developer moves on. This is a plain-English checklist of what to look for before you sign. It isn't legal advice; for a large project, have your attorney read the final version.
Ownership
- You own the code written for you once it's paid for. The contract should say so in plain words, and say when ownership passes (on each milestone payment is common).
- The developer can keep using their own general tools and libraries. That's normal, as long as you get a permanent licence to use them in your product.
- Open-source components are listed or at least allowed, and none of them restrict how you can use or sell the product.
Accounts and access
- The App Store, Google Play, domain, hosting, database and payment accounts are in your organization's name, with the developer added as a user.
- The code lives in a repository you own or can download at any time.
- Passwords and keys are handed over at the end, and the developer's access can be removed.
Scope, milestones and acceptance
- A written scope: the screens, features and integrations included, and a short list of what's not included.
- Milestones with a payment tied to each one, so you pay as working software is delivered.
- An acceptance step: how long you have to test each milestone, and what counts as a defect versus a new request.
Changes
New ideas will come up. The contract should say that changes are quoted in writing before any work starts, and give the hourly rate for small extras. That keeps the budget predictable for both sides.
Warranty and support
- A warranty period after launch (often 30 to 90 days) when bugs in delivered work are fixed at no charge.
- What ongoing support costs after that, and what it covers: store updates, security patches, hosting, small changes.
- Response times for urgent problems, if the app is critical to your business.
Confidentiality and data
The developer keeps your business information and your users' data confidential, uses it only for your project, and follows any rules you're bound by. If AI tools are used in the work, the contract or proposal should say how your data is handled.
Ending the relationship
Either side can end the agreement with notice. You pay for work done to that point, and you receive the code, accounts and documentation for it. This clause matters most and is the one most often missing.
How we do it
Our proposals spell out scope, milestones, acceptance and the change process, and every account and repository is in the client's name from day one. If you have a contract from another developer you'd like a second opinion on, send it to us.