ABAkash Bansal

Home / Notes

Guide · Hiring, contracts & ownership

Software development contract and SOW template: a plain-English version for founders

A plain-English software development contract and SOW template: scope, milestones, acceptance, change requests, IP and handover. Not legal advice.

Short answer

A software development contract usually has two parts: a master agreement with the legal terms, and a statement of work (SOW) saying what gets built, by when, for how much, and how you'll know it's done. Founders lose money in the SOW: vague scope, no acceptance test, no change process. Not legal advice.

Not legal advice. I'm an engineer, not a lawyer. What follows is the plain-English structure I'd want in any software contract as a founder, and the terms I offer on my own builds. Have a lawyer in your country review anything you sign.

Most contract templates online are written by lawyers for lawyers. They're thorough on liability and silent on the things that actually sink founder projects: what "done" means, what happens when you change your mind in week four, and whose name is on the cloud account. Those live in the statement of work, and you're the only one who can write it.

What goes in a software development contract?

Two documents. A master services agreement (MSA) carries the legal terms that rarely change. A statement of work (SOW) describes one specific project. You sign the MSA once and add a new SOW per phase, so a second build doesn't mean renegotiating liability.

DocumentWhat it coversWho should draft it
Master services agreementPayment terms, confidentiality, IP assignment, warranties, liability cap, termination, governing law, disputesA lawyer, or the builder's standard terms reviewed by your lawyer
Statement of workGoal, scope, deliverables, milestones, price, acceptance, change requests, handover, supportYou and the builder, together; it's about the product

Some freelancers combine both into one short agreement. That's fine for small jobs, as long as every item below appears somewhere.

Which clauses matter most for a founder?

Five clauses decide whether a build goes well: scope, acceptance, change requests, payment milestones and IP. Each one prevents a specific, common failure.

ClauseThe failure it preventsWhat good looks like
Scope, with an "out of scope" list"I assumed that was included"Feature by feature, plus an explicit list of what isn't in this SOW
Acceptance criteriaEndless "almost done"; or paying for something that doesn't workA written test per deliverable and a fixed review window, after which it's accepted
Change requestsWeek-four surprises in price or dateChanges in writing, priced before work starts; swap-outs of equal size allowed
Payment milestonesMost of the money gone before anything worksPayments tied to demo-able milestones, not dates
IP assignment and accountsThe developer holds the code or the cloud accountWritten assignment to your company; repos and accounts in your name from day one

I wrote about how missing clauses like these cost founders money in why founders waste $50K on agencies. This article is the constructive half: what to put in instead.

Why isn't "work for hire" enough to own the code?

Because, in US law, a contractor's work only counts as "work made for hire" in nine specific categories, such as a contribution to a collective work or a translation. The US Copyright Office's Circular 30 lists them, and software written by an independent contractor isn't clearly among them. So contracts that rely on the phrase alone can leave ownership with the developer.

The usual fix is a belt-and-braces clause: the work is a work made for hire where the law allows, and otherwise the developer assigns all rights to your company. A copyright transfer has to be in writing and signed (17 U.S.C. § 204). Other countries have their own rules, which is one reason to have a lawyer look at this clause.

Legal ownership is half of it. Practical control (the repository, the cloud account, the domain, the app-store and payment accounts) is the other half, and I go through both in who owns the code: a founder's checklist.

A plain-English statement of work template

Copy this, replace everything in [brackets], and delete what doesn't apply. It's written for a fixed-price build; for hourly work, replace section 6 with a rate, a monthly cap and a weekly report.

1. Parties and summary

This statement of work is between [Your Company Ltd] ("Client") and [Builder name or company] ("Builder") under the master agreement dated [date]. Builder will design, build and launch [product name], [one sentence: who it's for and what it does].

2. Goal

The goal of this phase is: [the outcome, not the features. Example: "a booking app that lets studio members book and pay for classes, live in the App Store and Google Play"]. Success at launch means: [one measurable thing, e.g. "a member can book and pay for a class in under two minutes"].

3. In scope

  1. [User type 1, e.g. Member]: [what they can do, in plain verbs: sign up, browse classes, book, pay, cancel].
  2. [User type 2, e.g. Admin]: [create classes, see bookings, issue refunds].
  3. Platforms: [web / iOS / Android], built as [one cross-platform app / web app].
  4. Integrations: [payment provider, email provider, any other system].
  5. The detailed requirements are in [PRD title and version, attached], which forms part of this SOW.

4. Out of scope

Not included in this SOW: [brand and logo design; marketing site copy; data migration; languages other than English; features listed under "later" in the PRD; legal pages; third-party fees]. Anything not listed in section 3 is out of scope unless added through section 8.

5. Deliverables and milestones

MilestoneWhat you'll see workingTarget datePayment
M0: Scope signedWritten design doc and week-by-week plan[date][deposit, e.g. 20%]
M1: Core workflow[e.g. a member can sign up and book a class on a test build][date][e.g. 30%]
M2: Feature complete[payments, admin, notifications working on test builds][date][e.g. 30%]
M3: Launch and handoverLive in production and stores; docs and walkthrough delivered[date][e.g. 20%]

Builder will show working software every [week] and share a written progress note.

6. Price

The fixed price for this SOW is [amount and currency], payable per the milestones in section 5. The price excludes third-party fees (hosting, app stores, payment processing, AI usage), which Client pays directly on Client's own accounts. Invoices are due within [14] days.

7. Acceptance

For each milestone, Builder will tell Client in writing that it's ready for review. Client has [5] business days to test it against the acceptance criteria in the PRD and either accept it or list specific defects. Builder fixes listed defects and resubmits. If Client doesn't respond within the review window, the milestone is accepted. A defect is something that doesn't meet the written criteria; a new idea is a change request.

8. Change requests

Either party can propose a change in writing. Before any work starts, Builder replies with the effect on price and dates. Client may: approve it; swap it for an in-scope item of similar size at no cost; or defer it to a later phase. No change is billable without written approval.

9. Ownership, code and accounts

  1. All code, designs and documents made for this SOW are assigned to Client on payment of each milestone, and are a work made for hire to the extent the law allows.
  2. The code lives in a repository owned by Client from day one. Builder works in it with access Client can revoke.
  3. Cloud, domain, app-store, payment and email accounts are created in Client's name. Builder gets access as a user, not ownership.
  4. Builder may use pre-existing tools and open-source libraries, which stay under their own licences. Builder will list any that carry obligations for Client.

10. Handover

At M3, Builder delivers: setup and deployment instructions another engineer can follow; an architecture overview; a list of every account and service used; and a [1-hour] recorded walkthrough. Handover is complete when [Client or Client's engineer] has deployed the app from the instructions.

11. Support after launch

For [30] days after launch, Builder fixes defects against the acceptance criteria at no charge. After that, support is [a separate agreement / hourly at [rate] / not included].

12. Ending early

Either party may end this SOW with [14] days' written notice. Client pays for accepted milestones and for work done on the current milestone pro rata; Builder hands over all code and documents for work paid for.

What are the red flags in a software development contract?

Read the builder's draft with these in mind. Any one of them is worth a conversation before you sign.

How do my own terms compare?

On my builds, the fixed quote comes after scoping, with a written design doc; you see working software every week; the code, repositories and cloud accounts are yours from day one; and the build ends with a handover. The template above is that, written down so you can ask anyone for it. Whether a fixed price is right for your project at all is in fixed price vs time and materials.

The SOW is only as good as the scope it points to. Section 3 says "the detailed requirements are in the PRD", and if you don't have one yet, here's how to write a PRD for an app, with a template.

If you'd like a builder who starts from these terms, here's how I work.

Questions founders ask

What is the difference between a contract and a statement of work?

The contract (often called a master services agreement) holds the terms that rarely change: liability, confidentiality, payment terms, governing law, termination. The statement of work describes one project: scope, deliverables, milestones, price and acceptance. You can sign one master agreement and add a new SOW for each phase.

Does 'work for hire' in a software contract give me the code?

Not reliably on its own. Under US law, work by an independent contractor counts as work made for hire only in nine listed categories, and software isn't clearly one of them. That's why good contracts also include an explicit written assignment of the copyright and IP to your company. Ask a lawyer for your country.

What should a statement of work for software development include?

At minimum: the goal, what's in and out of scope, deliverables, milestones with dates, the price and payment schedule, acceptance criteria and how long you have to test, a change-request process, who owns the code and accounts, handover, and support after launch.

Should a software contract have milestone payments?

Yes. Tie each payment to something you can see working and accept, not to dates or effort. A common shape is a modest deposit, payments at two or three demo-able milestones, and a final payment on acceptance and handover. Avoid paying most of the price upfront.

Do I need a lawyer for a software development contract?

For anything material, yes: have a lawyer in your jurisdiction review the master agreement, especially liability, IP assignment and termination. You can do most of the SOW yourself, because it's about the product, and a lawyer can't tell you what's in scope.