intermediate 2 min answer

You inherit 300 applications and are asked which to retire first. Estimate what a single low-traffic internal application costs the organisation per year, and say which part of that number should drive the retirement order.

portfoliorationalisationtotal-cost-of-ownershipestimationretirement
Show the full answer Hide the answer

The assumptions, stated

Take a small internal application: one service, one small database, a few virtual machines or containers, no dedicated team.

  • Infrastructure: roughly \(3k-\)15k a year. Small, and the number people reach for first.
  • Licences and third-party services: \(0-\)50k, wildly variable, and the one worth checking early because it is occasionally the whole answer.
  • Keeping it alive: dependency and base-image upgrades, certificate rotation, one or two framework or runtime migrations a year, responding to security advisories. Call it 10-20 engineer-days a year, which at roughly \(800 a fully loaded engineer-day is **\)8k-$16k**.
  • Compliance and audit: access reviews, evidence collection, penetration-test scope, disaster-recovery attestation. 1-5 days a year per application, and in a regulated estate more.
  • Incident and support tail: a handful of tickets, occasional out-of-hours attention.

Total: roughly \(20k-\)60k a year for an application nobody is developing. Multiply by 300 and the estate's floor is \(6M-\)18M annually before any feature work.

Which part should drive the order

Not the largest component - the most coupled one. Infrastructure cost is proportional to the application and disappears cleanly when it does. Engineer-days do not: they are spent by teams who have other work, and they are extracted in interruptions rather than in a budget line, so they are both invisible and expensive.

The ranking that survives contact with reality is therefore:

  1. Applications that consume scarce, named people. The ones where only two engineers know how to deploy it.
  2. Applications inside the compliance boundary that nobody uses. Each carries a fixed annual audit cost that does not scale down with usage.
  3. Applications blocking a platform migration. The one service still on an unsupported runtime holds an entire upgrade programme hostage, and its true cost is the delay it imposes on everything else.
  4. Applications with the largest licence lines. Cash, recoverable immediately, and it makes the programme visible to finance.

Raw infrastructure spend comes last, which inverts the order most rationalisation programmes use.

Which assumption dominates the error

The engineer-days figure. It varies by an order of magnitude between a containerised service on a paved road (2 days a year) and a hand-built virtual machine with a bespoke deployment (30 days). Measuring it is cheap: count the changes made to each repository in the last year that were not features. That single query ranks the estate better than any survey.

When this estimate is the wrong basis for the decision

A retirement programme justified on infrastructure savings alone. Those savings are real, small and slow, and the programme will be cancelled when a product deadline arrives. Justify it on the constraint it removes - people, audit scope, or a blocked migration - and it survives.