Enterprises are excellent at launching internal software and nearly incapable of retiring it. The missing piece isn't courage — it's pre-agreed, data-backed criteria that make retirement a default outcome instead of a political fight.
Every app in the portfolio has a sponsor who remembers why it was built, a team that maintains it, and a handful of users who'd notice. What no app has is a prosecutor. Retirement proposals arrive as opinions — "surely nobody uses this?" — and opinions lose to incumbency every time. Meanwhile the estate compounds: every zombie app is licenses, patching, an audit surface, an on-call burden, and an engineer who isn't building something people want. (The full picture: the shadow portfolio.)
The fix is to change the default. Don't ask "can anyone prove this app should die?" Ask "can this app meet the published survival criteria?" — and let the data answer.
Set these once, publish them, and apply them quarterly. Numbers below are sane starting points — tune them to your estate, but tune them before the review, never during one.
| Trigger | Threshold (starting point) | What it catches |
|---|---|---|
| Usage floor | Fewer than 20 distinct visitors/month for 2 consecutive quarters | The truly dead: apps kept alive by inertia and one bookmark. |
| Reach floor | Under 15% of the eligible audience monthly | Apps that "have users" but lost their population — the workflow moved elsewhere. |
| Rating floor | Average below 2.5★ sustained for a quarter, with usage also declining | Tools that are both disliked and being abandoned — fix-or-kill, not fix. |
| Trend trigger | Usage down >50% year-over-year absent a replacement launch | The slow fade nobody notices quarter to quarter. |
| Duplication trigger | Another portfolio app serves the same job with ≥2× the usage and a higher rating | The consolidation case that's obvious on one dashboard and invisible without it. |
Breaching a criterion doesn't auto-delete anything — it moves the app into a justify-or-sunset queue where the owner gets one review cycle to make the case (seasonal usage, regulatory necessity, a captive critical audience). No case, no reprieve: the default is retirement. Defaults beat debates.
Present retirements the way finance hears them: each sunset app returns its run-rate — licenses, infrastructure, the maintenance fraction of an engineer — and reduces audit surface. A portfolio review that retires four apps a year typically self-funds the entire measurement program several times over. That's the pitch that turns "portfolio hygiene" from an engineering hobby into a budget line: the dashboard that names the zombies pays for itself with the first funeral.