← Blog

Custom Software

How to keep a software project in scope (and why it still runs over)

May 22, 20267 min read

Ask any software studio about their biggest project management challenge and you'll get the same answer: scope creep. A project starts at €30,000 and 10 weeks. It finishes at €48,000 and 16 weeks. Nobody is happy, even though the final product works.

The frustrating part? Scope creep is rarely caused by bad intentions. It's caused by the nature of software projects: you learn things during development that you didn't know at the start, and those learnings lead to changes. The question isn't how to eliminate scope changes entirely — that's impossible — but how to manage them so they don't blow up your timeline and budget.

Why projects run over: the real reasons

Scope creep gets blamed on vague requirements or indecisive clients. That's the surface explanation. The deeper causes are more specific:

1. The brief describes what, not why

A brief that says "build a dashboard with real-time KPIs" gives the development team no way to evaluate trade-offs. Which KPIs matter most? How real-time is real-time — every second, every minute, every hour? What decisions will someone make based on this dashboard? Without the why, every feature request seems equally important, and nothing gets cut.

2. Stakeholders join late

The project starts with input from the operations director. In week four, finance sees a demo and adds five requirements. In week eight, the CEO wants a different dashboard layout. Each stakeholder thinks they're adding "just one thing" — together, they've added 40% to the scope.

3. Nobody tracks the scope formally

If the original scope isn't documented in a way that everyone can reference, there's no baseline to measure against. Changes get absorbed silently into the sprint until someone looks up and wonders why the project is three weeks behind.

4. The technical discovery was too shallow

The estimate assumed a clean API for the integration. Turns out the API has no documentation, the authentication is custom, and the data model doesn't match. That's not scope creep — it's a bad estimate. But it has the same effect on the timeline.

Six techniques that actually work

1. Start with a proper discovery phase

I've written a full article on this, but the short version: two to three weeks of research before development starts reduces rework by 20–30%. That's the single highest-impact thing you can do to keep a project in scope.

2. Document the scope as a living checklist

Not a 40-page specification. A single document — or a board in your project management tool — that lists every feature and user story in the current scope. Everything on the list has a status: not started, in progress, done. Everything not on the list is out of scope. When someone asks "can we also add...," the answer is: "Yes, and here's what it would cost and what it would delay. Do you still want it?"

3. Use a change request process — even a simple one

It doesn't need to be bureaucratic. A change request can be a two-line message: "Adding feature X will take approximately Y hours and push the deadline by Z days. Approve?" The act of making the trade-off explicit is what prevents scope from growing silently. Most clients, when faced with the real cost of a change, will say "let's put it in v2."

4. Build in phases, not all at once

This is the MVP approach: define what v1 needs to do, build it, ship it, learn from it, then plan v2 with the benefit of real user feedback. Phases create natural checkpoints where scope gets re-evaluated. They also give everyone a sense of progress — nothing kills a project like six months of building with nothing to show.

5. Lock the scope for each sprint

If you're working in two-week sprints, the scope for each sprint is fixed once it starts. New requests go into the backlog and get prioritized for the next sprint. This prevents the constant shuffling that fragments developer focus and extends timelines. It also forces stakeholders to think about priority: if everything is urgent, nothing gets done well.

6. Include a buffer — and be honest about it

Every project estimate should include a contingency of 15–20%. Not as hidden padding, but as an explicit line item. "The base estimate is €35,000. We recommend a €5,000 contingency for unforeseen complexity." Most projects use some of it. If you don't, you come in under budget — which feels a lot better than blowing through an estimate that had no room for reality.

The cost of scope creep in numbers

Industry data from the Standish Group suggests that the average software project exceeds its original budget by 45% and its timeline by 50%. For a typical mid-sized business project:

  • Original budget: €40,000 — Actual: €58,000
  • Original timeline: 12 weeks — Actual: 18 weeks
  • Features actually used regularly: 64% — meaning €20,000+ went to features nobody needed yet

Projects that use a formal discovery phase and change request process average 15–20% overrun instead of 45%. Still not zero — but a €6,000–€8,000 overrun on a €40,000 project is manageable. A €18,000 overrun is a problem.

What to do when scope creep has already started

If your project is already mid-flight and growing beyond the original plan, here's how to reset:

  1. Pause and re-scope — Take half a day to list everything that's been added since the original plan. Calculate the impact on timeline and budget.
  2. Separate must-haves from nice-to-haves — With the client, split the expanded scope into two buckets: what's needed for launch and what can wait for a v2.
  3. Re-estimate the remainder — Don't try to squeeze the expanded scope into the original timeline. Adjust the plan based on what you now know.
  4. Implement the change process going forward — Even if you didn't have one at the start, it's not too late. The next change request gets evaluated before it enters the sprint.

The client's role in keeping scope under control

Scope management isn't just the development team's job. As a client, you can do three things that make a massive difference:

  • Designate one decision-maker — If five people can add requirements, the scope will grow five times faster. One person collects input from the team and makes the final call on what goes in and what waits.
  • Attend every sprint review — If you skip reviews for three sprints and then have a list of changes, you've just created six weeks of rework. Frequent feedback in small doses beats delayed feedback in large doses.
  • Trust the phased approach — The hardest thing to hear is "that's a great idea, but it's v2." It feels like saying no. It's actually saying "yes, at the right time" — and it's the single best way to get a working product on time and on budget.

Planning a project and want to keep it on track?

Describe what you want to build and I'll outline a phased approach — including what goes into v1, what waits for later, and how we keep the scope locked during development. If you've already started a project that's growing beyond the plan, I'm happy to give a second opinion on how to reset and get back on track.

Collaborate

Question? Project? Just want to brainstorm?

Get in touch →