← All writing
Craft · · 7 min

Scope creep is mechanical

Nobody ever asks for six extra weeks. It arrives below the noise floor, forty small requests at a time.

Culture Agency

A thing I’d put six weeks on wrapped in September at roughly 40% long. Not a disaster, not a fight, nobody behaved badly, and there was a slightly awkward retrospective at the end where everyone agreed it had grown.

There was no change log. There’s no change log because in-house doesn’t have one. There’s no contract for anything to be a variation to. The board had four cards on it that weren’t there in July, and those four cards are the entire written record of a project that took ten weeks instead of six.

So somewhere between those four cards and the actual overrun there’s about four weeks of work that nobody recorded, nobody approved, and nobody could name afterward. Including me, and I did most of it.

I spent six years in agencies thinking the change-request process was mostly ceremony: a form, an email, a delay, a small tax on being helpful. A few months without one has taught me what it was actually for, which is that it was the only thing in the building that counted anything.

That’s the thing I want to write about, because “scope creep” is nearly always narrated as a drama with characters in it. A pushy stakeholder, a developer who couldn’t say no, a manager who agrees to things in meetings. And I don’t think it’s a character problem at all. It’s a system with no accounting in it, and you’d never run a household budget this way.

Nobody asks for six weeks

Here’s the mechanism, and it’s the whole post really.

Nobody has ever said “could you add six weeks of work.” What happens is that somebody asks for a thing that’ll take half a day. Then, on Thursday, another thing that’s about an hour. Then a design tweak. Then “while you’re in there.” Then a field on a form. Then the same field on the confirmation email.

Every one of those is genuinely small. Every one of them is, individually, well below the threshold at which anybody would raise a change request, because raising a change request costs an email, a conversation, some awkwardness and a delay, and the thing itself costs 40 minutes.

So the rational move, every single time, for everyone involved, is to absorb it.

Every request arrives below the threshold at which it's worth logging. That isn't a discipline problem. It's a threshold problem, and the threshold is the design.

40 of those and you’re three weeks over, and there is no moment in the entire sequence where anybody made a bad decision. That’s what I mean by mechanical.

The record and the reality

Compounding it: the requests don’t all arrive in the same place.

Some come through the board, and those get a card, and those are the four cards. Some arrive as a message to me directly. Some are said out loud near the end of a call about something else. Some are a comment on a design file. One was in a reply to an unrelated email thread from three weeks earlier.

Only the first channel has any accounting attached. So the change log isn’t inaccurate, it’s a faithful record of one of six inbound routes, and everybody reads it as though it were the whole picture.

Six interventions, one per step

None of these are process in the heavy sense. They’re each about ten minutes.

Write the exclusions, not just the inclusions. This is the biggest one by a distance. “Filter by roast” is not a specification, it’s a noun, and it has a legitimate range of meanings that spans about two weeks of work. Most of what gets called creep is actually that ambiguity resolving, and it resolves in the requester’s favor every time because they’re the ones with the picture in their head.

So: one facet, single-select, on the category page only, no interaction with the existing sort, no counts next to the options, no URL that anybody can bookmark. Nobody objects to any of that at kickoff. It’s much harder to have that conversation in week nine, when it feels like a refusal instead of a definition.

One channel, kindly enforced. Everything goes in one place. When somebody asks in a DM, the answer is “yes, can you put that on the board so it doesn’t get lost,” which is a friendly sentence and does the entire job. I’ve never had anyone take it badly. It works because “so it doesn’t get lost” is true.

Log the tiny ones, especially. The 40-minute items are the mechanism. If your log only contains things worth a change request, it will always show four entries and the project will always be 40% long, and the two facts will never be connected by anybody.

Make logging cheaper than absorbing. This is the one people miss. If recording a small request means a form, an approval and an email, then absorbing it is faster and the system has instructed everyone to absorb it. It needs to be one line in one place taking 20 seconds. The record is what matters, not the ceremony.

Show a running total, weekly, unprompted. One number: days added since we started, and what’s in them. Not as a complaint, just as a line in the update alongside everything else.

This changes behavior more than anything else on the list, and not by making anyone defensive. It makes the cost visible at the moment of asking, which it never otherwise is, because the person requesting has no idea they’re the eleventh.

Agree the rule before anyone’s under pressure. At kickoff, decide what happens to additions: they come out of a contingency pot, or they move the date, or they displace something of equivalent size. Any of the three is fine. Having agreed one in week one, when it’s abstract and everybody’s cheerful, is what makes week nine possible.

Some of it is the project getting smarter

I’d be describing this badly if I treated every change as an enemy.

A decent proportion of scope change is genuine discovery. You learn in week four that the thing the brief asked for solves the wrong problem, which is the entire subject of a post I wrote a few years ago. You find out the warehouse system does something nobody mentioned. The design meets real content and needs a state nobody drew.

That isn’t creep, that’s the project being right rather than being on time, and a process that suppresses it is worse than one that lets it through unaccounted.

Which is exactly why the answer is accounting rather than resistance. If the mechanism logs everything and shows a total, the good changes and the accidental ones are both visible, and the business gets to decide which it’s buying. Refusing everything and absorbing everything are the same failure: in both cases nobody’s choosing.

A ledger, not a backbone

The reason I’d push back on the word “creep” is that it implies something seeping in while you weren’t watching, which implies you should have been watching, which makes it about vigilance and therefore about character.

It isn’t. It’s 40 small transactions with no ledger. Add a ledger that’s cheaper to use than to skip, put a total on the weekly update, and most of it stops happening without anyone having a difficult conversation at all.

I’d rather have the ledger than the backbone, personally. I’ve got much more reliable access to one of them.

Read similar posts
7 min

Strangler fig

The pattern has a name and a literature, and the literature is about banks with 40 teams, and I have a 40-page site for a firm of surveyors, and the mechanics scale down further than anybody writes about.

7 min

The rewrite that shouldn't happen

This is the third proposal to rewrite the same system in five years, all three from competent people acting in good faith, and the interesting question isn't whether they're right, it's why the proposal keeps arriving.