Scope Creep: How to Spot It and Stop It

· 7 min read

Scope creep is work that enters a project without a decision about what it costs. You stop it with two written things: a signed list of what is in, out and later, and a short change-request routine that puts a price and a date on every new request before anyone starts. Below is what it looks like, where it comes from and what to do when it has already happened.

What scope creep looks like

The PMI describes scope creep as the uncontrolled expansion of project or product scope without matching changes to time, cost and resources (PMI, Scope and stakeholder management). The word that matters is uncontrolled. Scope may change, and often should. The problem is a change that nobody priced.

In practice it rarely arrives as one large request. It looks like this:

A useful test is to ask of any request: "Is this in the agreed list?" If nobody can answer, the list is the first thing to fix.

Where it comes from

Most creep traces back to one of four causes, and only one of them is a difficult client.

The fourth cause is partly a pricing habit. How to estimate a software project covers ranges and written assumptions, which turn "this is more work" into a visible fact.

Prevention: a signed in, out and later list

Take the prioritised requirements and sort each one into a column, then write the result as one short section of the scope document. How to scope a software project walks through this step by step.

In (this release) Out (not this project) Later (a known next step)
All Musts Ideas that do not serve a goal Shoulds and Coulds that did not fit
Shoulds that fit the budget Work someone else owns Items waiting on a decision or dependency

Four habits make the list work:

The priority labels come from the MoSCoW prioritization guide: Must, Should, Could and Won't (this time). The "Won't" items belong in the "out" column.

Keep the assumptions next to the list. In the example report of an invented project, Fieldwise, the milestones sit beside four assumptions, such as that the first release covers two of three regions. When a request breaks one of them, the assumption tells you which date and which estimate move:

Roadmap section of the Fieldwise example report, invented project: four milestones with estimates in person-weeks and four assumptions underneath

Before the list is final, the discovery phase checklist asks whether the scope for the first release is agreed in writing, and whether the next step is clear:

Sign-off section of the discovery phase checklist: questions about the executive summary, written agreement on first-release scope, the next step and one shareable document

A simple change-request routine

When a new request arrives, run the same four steps every time. The routine is deliberately small, so that people actually use it.

  1. Log it. Write the request down with the date, who asked, and what they want in one sentence. Do not start work yet.
  2. Check it against the list. Is it in, out or later? If it is already in, it is not a change; if it is out or later, it is.
  3. Price it as a range. Give the effort as a low and a high figure, the effect on the date, and what it depends on. If it pushes out the date, say which milestone moves.
  4. Decide in writing. The decision maker accepts it (with the cost and date), swaps it for something already in, defers it to "later", or declines it. Record the decision on the same log line.

A change log can be one line per entry: date, request, rough hours, status (decided or pending). Anything that would start a long discussion can wait until the point where a decision is needed, so the log stays something people read.

The swap is the most useful answer. "We can add that if X moves to the next release" is a choice, not a refusal, and it uses the priority you already agreed.

What to do when it has already happened

If the project is already carrying unpriced work, repair it in this order:

  1. Write down what is in the project today, including the extras. Do not argue about who is to blame; just list.
  2. Compare it with the original list. The difference is the creep. Count it in the same units as the estimate.
  3. Tell the sponsor plainly: here is what was agreed, here is what has been added, here is its effect on cost and date.
  4. Offer three options: absorb the cost, move the date, or remove items of equal size.
  5. Start the routine now. Past work is past; the aim is that the next request is priced before it is started.

If the original scope was never written, take the earliest document that describes the project, such as the discovery output or the proposal, and treat it as the baseline. It is not perfect, but a baseline you can point at beats none.

Scope creep is easier to prevent in discovery, when the list is cheap to change. If you are deciding whether you need a discovery phase at all, do you need a discovery phase lists the signs that the scope is unclear enough to justify one.