arrow_backAll articles

How to prevent scope creep in software projects without losing your margin

· Josef Chmel

How to prevent scope creep in software projects without losing your margin

“Just one more small button” – and a three-month project becomes a five-month one. What PMI and McKinsey data say about scope creep, and how to set up change control so the client gets what they need and you don't lose money.

No project is broken by one big request. It is broken by twenty small ones. “It would be nice to export this to Excel.” “Can you add a date filter?” “The boss would like one more chart.” Each request sounds reasonable on its own and takes “just a few hours”. Together they push the deadline back two months and turn a fixed-price project into a loss. This is scope creep – the uncontrolled growth of a project's scope without assessing the impact and without approval. Let's look at how big the problem is and how to prevent scope creep in a software company.

How big a problem scope creep is

The Project Management Institute (PMI) asks about scope in its annual Pulse of the Profession survey. According to the 2018 edition, 52% of projects completed in the previous 12 months experienced scope creep or uncontrolled changes to scope. Five years earlier it was 43%. The problem is not shrinking – PMI attributes it to higher stakeholder expectations and a faster pace of delivery.

For large IT projects, the consequences are expensive. McKinsey, together with the University of Oxford, analysed more than 5,400 IT projects. Large projects (with an initial budget above $15 million) ran on average 45% over budget and 7% over schedule, and delivered 56% less value than predicted. The study links unstable scope mainly to infrequent communication with stakeholders about new requirements and change requests.

Scope creep by the numbers: 52% of projects experienced scope creep according to PMI 2018, 43% five years earlier; large IT projects run 45% over budget on average and deliver 56% less value

Notice that the schedule slip is “only” 7%, while the budget overrun is 45%. Companies often hold the deadline by throwing people and overtime at the project. The supplier's margin or the client's budget pays for it.

Where scope creep comes from

In its project management guide, Atlassian lists four typical causes:

  • Poor communication. Everyone reads the requirements differently, and decisions made in emails and hallway chats get lost.
  • Unclear objectives. Without a clear definition of “done”, you cannot judge whether a new request supports the goal.
  • Too many stakeholders. Everyone has their own ideas, and nobody has the final say.
  • No change control. Requests arrive “in passing” and nobody assesses their impact.

PMI adds one more trap typical for software companies: treating agile as a licence for unlimited changes. A flexible backlog does not mean you can keep adding to it without a trade-off.

Change control: five steps instead of “sure, we'll do it”

The cure is not to reject every change. The client learns more during the project, and some new requests are worth more than the original plan. The cure is to put every change through the same simple process. Atlassian describes it like this:

  1. Request – written down, with a specific owner and a business reason.
  2. Impact assessment – what the change does to the schedule, budget and people.
  3. Decision – approve, reject, defer, or swap it for something else. Every “yes” is tied to a trade-off.
  4. Record – who decided and why.
  5. Update – the plan, the dates and the communication with everyone involved.

Scope change control in five steps: a request with an owner and a business reason, impact on schedule, budget and people, a decision to approve, reject, defer or swap, a record of who decided and why, and an update of the plan

At the start of the project, this goes together with a short scope statement – what you will deliver and, just as importantly, what you explicitly will not. Plus a sign-off from the sponsor. PMI recommends putting the change procedure directly into the contract; every further request is then negotiated by the rules, not by mood.

When a change is not scope creep

In an agile project, change is expected. Elena Yatzeck of Thoughtworks therefore proposes a simple test: a change is not scope creep if it does not create additional work for anyone. Specifically:

  • A change before the team works out the details is fine. Stories stay brief until work on them starts.
  • A story can be swapped for another one of the same estimated effort.
  • Keep a buffer of about 20% of the release plan for work you don't know about yet. Until it runs out, everything is fine.

Scope creep, on the other hand, is reworking features that are already done (the time spent on them is gone), swapping a small feature for a much larger one with the same deadline and budget, and in general adding work without a trade-off elsewhere. When negotiating with the client, Yatzeck recommends arguing with data: what is already done, how fast the team delivers, and how the new request would move the release date.

When a change is fine: a change before the details are worked out, a swap for a story of the same effort, drawing on a buffer of about 20% of the plan. Scope creep: reworking finished work, swapping a small feature for a big one with the same deadline, adding work without a trade-off

Sprints and fixed time as scope protection

Two established methods handle scope in a surprisingly similar way – with fixed time.

Scrum. The Scrum Guide says that during a sprint no changes are made that would endanger the Sprint Goal, and quality does not decrease. Scope may be clarified and renegotiated with the product owner as more is learned. A new request therefore goes into the backlog, and its order is decided when planning the next sprint – not on a Tuesday afternoon phone call with the client. A sprint lasts one month or less, so the client does not wait long.

Shape Up. Basecamp's method works with the idea of appetite – how much time you are willing to spend on something, not how long an estimate says it will take. The principle is “fixed time, variable scope”: the deadline does not move and the scope adapts to it. Nice-to-haves are left for the end of the cycle, and if there is no time for them, they get cut.

The practical lesson for the head of a software company: agree with the client on what is fixed. Either the date and budget (and scope adapts), or the scope (and then every change means a new estimate and a new price). The worst option is when everything is fixed – that is the one you end up paying for.

A checklist against scope creep

  1. At the start, write down what is in scope and out of scope, and get it signed off.
  2. Have one person on the client side who decides on changes.
  3. Record every new request as a separate item with an estimate, not as a note in an email.
  4. With every “yes”, say what moves or drops out.
  5. Keep a buffer in the plan and watch how fast you use it up.
  6. Log worked hours against specific tasks – it is the only way to show the client what the changes actually cost.

How mcptask.online helps

In mcptask.online you break a project into Epic → Story → Task and rate each task with scrum points, which automatically produce an hour estimate. A new client request immediately gets its own task with an estimate, and you see how much the scope is growing. Ideas that are still waiting for a decision can use the “idea” task type, so they don't land straight in the sprint. Dependencies between tasks are real blocker links, so you can see what a change will push back.

Time is logged against specific tasks – manually or from commits that reference the task – and timesheets export to JSON, CSV or PDF. You can show the client exactly what each change cost. Tasks from Jira, Trello or Redmine can be imported.

And once you approve a change, it doesn't have to be done by one of your developers. Small, well-described tasks with acceptance criteria can be picked from the same queue by an autonomous AI developer (the runner) on your own infrastructure: it writes code and tests, opens a pull request, and you decide about the merge.

Want to keep project scope under control? Sign up at mcptask.online – the first 30 days are free, no credit card required.

Sources

Related articles