Skip to content
Time to Signal

All notes  /  Programme

Getting Improvements Adopted

A faster path nobody uses is not faster. Why developers keep the old way, and what actually moves people across.

Analysis

Toolchain improvements fail at adoption more often than at implementation. The reasons are consistent and mostly not about resistance.

Why people keep the old way

They do not know. The most common reason and the most easily fixed.

It is not the default. Anything requiring a flag, an opt-in or a configuration change is used by the people who were already paying attention.

It broke once. A single bad experience with a new cache or a new command produces a lasting workaround.

Their case is not covered. The new path handles the common workflow and not theirs, and nobody asked.

Muscle memory, which is real and which is overcome by defaults rather than by persuasion.

The change was announced during a crunch, when nobody had capacity to learn anything.

What moves people

Make it the default. Opt-out beats opt-in by a wide margin, every time.

Make it faster in the first minute they try it. A first experience that is slower than the old way — a cold cache, a first-run download — loses people permanently.

Fix the uncovered cases before the rollout, which requires asking a sample of people what they actually do.

Show the number. "This takes four minutes instead of eleven" moves more people than any explanation.

Roll out to a small group first, fix what they find, then widen.

The first-run problem

Worth separating because it defeats otherwise good changes.

A new cache is empty. A new environment must download. A new index must build.

So the first experience of a faster system is slower than the old one, and that is the experience people remember.

Prime it. Populate caches before rollout, ship a warm image, pre-build the index.

Or say so explicitly: "the first run takes six minutes; every run after is thirty seconds". People accept a stated cost and resent a surprise.

Measuring adoption

Proportion of runs using the new path, which most tooling can report.

By team, which localises where it has not landed.

Trend over weeks. A curve that plateaus below full adoption is telling you a case is uncovered — go and ask which.

Not by individual, which is the boundary this whole collection holds.

When adoption stalls

Ask the people who have not moved. They have a reason and it is usually specific.

Common answers: it breaks for their language, their platform, their repository size, their offline workflow, their debugger.

Fix the reason rather than repeating the announcement.

Where the reason cannot be fixed, document the exception rather than pretending adoption is complete. An honest ninety percent with a named gap is a better position than a claimed hundred.

Priming before rollout

The step that prevents the first experience from being worse than the old one.

Populate the cache before announcing it, so the first user gets a hit rather than a cold miss.

Ship a warm image where the environment is containerised.

Pre-build the index where the editor needs one.

Or state the cost: "the first run takes six minutes, every run after is thirty seconds."

People accept a stated cost and resent a surprise, and the surprise is what produces the workaround that persists for a year.

Removing the old path

Eventually, or you maintain two forever.

Check the adoption number first. Removing at seventy percent produces a bad week and a lasting reputation.

Announce a date well ahead.

Warn on use of the old path before removing it.

Ask the remaining users why, which usually names a case nobody covered.

Then remove it, because a deprecated path that never goes away is a permanent maintenance cost and a permanent source of divergence.