Skip to content
← Back to the blog
software development

Software project scope: how to define it

Learn how to write deliverables, exclusions, and acceptance criteria so your software project stays in scope and on budget.

By Equipo Devonauts4 min read
Leer en español →
Two people reviewing a block diagram at a meeting table in natural light

Defining a software project's scope is the decision that separates an executable plan from a wish list that grows every week. When the scope lives in the heads of two or three people, every new request looks small and every delivery looks incomplete. What follows, almost always, is an argument about what was "already included" and a budget that stretches with no one able to say why.

In this article we break down how to write three specific pieces — deliverables, exclusions, and acceptance criteria — that turn an idea into a reviewable agreement. It's the same logic we apply to custom software, apps, and web platforms, where scope isn't bounded by a packaged product and therefore has to be written down with more care.

Why scope gets out of control

There's rarely any bad intent. Three causes keep repeating: activities get mixed up with outcomes ("we held meetings" isn't a deliverable), acceptance criteria get left for the end, and legitimate business changes have no channel to come in through. When those three things line up, the scope document becomes decoration nobody consults, and the real reference becomes the most recent email.

The antidote is to write it in three blocks that are read together: what is delivered, what is not delivered, and how you check that it's done.

Deliverables: describe outcomes, not activities

A deliverable is something another person can look at, test, and accept. "Billing module" is too broad; "invoice-issue screen with customer, line item, and tax fields, plus a download-to-PDF action" can actually be reviewed. The difference looks minor until the project is halfway through and someone has to decide whether that module was approved or not.

Developer and operations manager reviewing an interface on screen

A practical rule: if you can't demonstrate a deliverable in a review session, it isn't written well enough yet. List each one in a single sentence and group them by stage (discovery, design, development, launch). Leave out internal tasks: your company doesn't care that there will be three architecture meetings — it cares what it gets at the end of that stage.

A formula that works

Noun (what it is) + behavior (what it does) + condition (under what circumstance) + who signs off. Example: "Monthly usage report that groups data by location, lets you filter by date range, and is signed off by the operations manager." Four elements, zero ambiguity.

Exclusions: what the document also has to say

Exclusions are the part people forget most and the one that heads off the most arguments. They're how you say out loud what the project does not cover: integrations with third-party systems, migration of historical data, native mobile versions if the project is web, translation into other languages, training, hosting, or post-launch maintenance.

Writing them down isn't a defensive posture or fine print. It's acknowledging that every project has an edge, and that the edge is better argued before you start than when the team is already working. If an important exclusion shows up, it will probably become a second phase — that's worth stating too.

Acceptance criteria: when a deliverable is done

"Accepted" can't mean "the client liked it." Acceptance criteria define, per deliverable, what gets checked, in what environment, and who approves it. They have to be observable: they either pass or they don't, with no interpretation.

Team checking a printed checklist against forms on a tablet

Examples of how to write them

"A user with the admin role can create, edit, and deactivate accounts, and the list reflects the change immediately." "The form rejects submissions without an email and shows a specific error message." "The export generates a file that opens correctly in a spreadsheet." None of them promises perfection; all three can be verified in a review.

It's also worth agreeing on a review window: how many days the client has to accept or raise issues. Without that, acceptance stays open — and so does project closeout.

How to manage changes without losing control

Scope changes because the business changes; the problem isn't the change, it's the unrecorded change. Define a single channel for requesting it, assess the impact on time, cost, and dependencies, and decide with three options on the table: accept it and adjust the plan, push it to another phase, or drop it. All three are legitimate; what isn't legitimate is agreeing to it in conversation and discovering the effect two weeks later.

Every approved change should produce a new dated version of the document. A scope with no version doesn't tell you what was agreed yesterday. If you'd like to see how we apply this framework, let's talk about what you need to build.

Frequently asked questions

Person drawing a three-path flowchart on a whiteboard

How much detail should the scope have before signing?

Enough that a third party understands what is and isn't being delivered. You don't need to describe every screen, but you do need every deliverable, the main exclusions, and the acceptance criteria. If a technical decision can change the visible result, resolve it or write it down with an owner.

Who should approve the scope document?

Whoever has authority over the budget and business priorities, plus the technical lead who will do the work. If there are multiple stakeholders, it's better to have one person consolidate the feedback: scope doesn't get negotiated with five voices in parallel.

What happens if the scope changes mid-project?

It gets logged as a change, its impact is assessed, and you decide whether it replaces something, joins another phase, or is dropped. What matters is that the decision is written down and reflected in the current version of the document — not just in the team chat.

If you're about to start a project and want to walk into the kickoff with a well-framed scope, tell us what you need to build. We'll review goals, deliverables, and exclusions before we talk about timelines or budget.

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.