DEV Community

Cover image for The Systems That Need Modernizing Most Aren't the Broken Ones
Teamvoy
Teamvoy

Posted on

The Systems That Need Modernizing Most Aren't the Broken Ones

The applications that most need modernizing are usually not the ones that are obviously broken.

They're the stable ones. Running for years, rarely paging anyone, and increasingly impossible to change. Nothing on a dashboard flags that, because "hard to change" isn't an outage — it's a slow tax paid in every estimate that comes back three times longer than the feature deserves.

Which is why the first question shouldn't be what technology replaces the current stack. It should be: what does the current architecture prevent the product and engineering teams from doing? That question has a concrete answer. "Should we move to microservices" does not.

Modernization is not a synonym for rewrite

This is the assumption that turns a scoped project into a two-year program. The real decision is what stays, what changes, and where the investment actually removes a constraint on the business.

The 7 R's are useful precisely because two of the seven are "don't touch it":

  • Retire — it no longer provides value. Delete it.
  • Retain — still useful, still cost-effective, leave it alone.
  • Rehost — move it, minimal changes. Fastest path to a new environment, solves the least.
  • Replatform — new platform, minor changes to optimize.
  • Refactor — improve the code's structure without changing external behaviour.
  • Rearchitect — redesign for new capability or scale.
  • Replace — retire it and adopt something else, often SaaS.

Run every application in the portfolio through that list before picking a strategy for any of them. Teams that skip this step tend to apply one R uniformly, usually rearchitect, because it's the most interesting one.

Worth being blunt about the trade at each level: rehosting is the fastest way to the cloud and will carry every legacy problem with it. Rearchitecting and rebuilding are where the real capability change happens, and where the schedule risk lives.

What actually goes wrong

Three challenges, and each has one thing that contains it:

  • Technical debt. Legacy code makes every update slower than it should be. Contained by structured assessment first — you cannot sequence work you haven't inventoried.
  • Integration complexity. Connecting modern components to legacy systems is where the unknown work hides. Contained by phased rollout, so an integration surprise costs one phase instead of the program.
  • Security risk. Changing infrastructure exposes new surface. Contained by continuous monitoring through the migration, not a review at the end.

None of those three are technology problems. They're sequencing problems, which is why the assessment phase is the one worth over-investing in.

Tie it to a number or it drifts

Modernization without a defined outcome becomes an infrastructure project that nobody can defend at budget time. Three things keep it honest:

  1. Named KPIs. Cost per deploy, time to ship a feature, incident rate — whatever the constraint actually was. Define it before the work starts.
  2. Cross-functional ownership. IT, business, and operations working from the same target. Modernization that only engineering can explain the value of gets cut.
  3. Prioritized workloads. Start with the applications where the constraint costs the business the most, not the ones easiest to migrate.

For context on scale: 83% of C-suite executives see app and data modernization as central to business strategy, and worldwide public cloud end-user spending was forecast at $723.4 billion for 2025, growing 21.5% year over year. The money is moving. Whether your slice of it removes a constraint or just relocates one depends on the sequencing above.

Where AI helps, and where the data layer stops it

Two things worth separating. AI in the modernized system — automation, forecasting, analytics — needs clean, governed data to be worth anything. If the data layer is the actual blocker, that's the modernization project, and no amount of application refactoring routes around it.

AI in the migration is a different claim. It compresses the mechanical parts: reading unfamiliar code, generating tests for untested paths, drafting the boring half of a refactor. It doesn't compress the assessment or the integration work, because those are constrained by other people's systems and by decisions someone has to own.

The sprint framing is the one part of the process worth copying regardless of scale: short iterative cycles against one measurable constraint, so you find out early whether the approach works. A modernization program that shows nothing for six months isn't lower risk than a rewrite. It's a rewrite with better branding.

Start with what the architecture prevents, not with what would replace it.

Full guide — all seven R's, the sprint model, and partner selection criteria: see the full guide

Written by Bohdan Varshchuk, CTO at Teamvoy. More engineering writing at teamvoy.com/blog.

Top comments (0)