Maturity Matrix

"Dead project too expensive to modernize" → agent modernizes for pennies

"Dead project too expensive to modernize" describes the category of software that an organization has written off as permanently unmaintainable - typically an internal tool, a lega

  • ·Projects previously deemed "too expensive to modernize" are being modernized by agents at low cost
  • ·Cross-repository migration agents operate across multiple codebases simultaneously
  • ·Major version migrations (e.g., Java 8 to 21, Angular.js to Angular 17) are agent-driven
  • ·Cost-per-migration-PR is tracked and decreasing
  • ·Cross-repo migrations complete within defined SLAs (e.g., 100 repos migrated in 30 days)

Evidence

  • ·Previously-stalled migration projects now in progress or completed with agent assistance
  • ·Cross-repo migration agent logs showing multi-repository operation
  • ·Major version migration PRs authored by agents with passing CI

What It Is

"Dead project too expensive to modernize" describes the category of software that an organization has written off as permanently unmaintainable - typically an internal tool, a legacy service, or an older application that still runs in production but has not been actively developed in years because the cost of modernizing it exceeds its perceived value. At L1-L2, the cost calculation is driven by human engineering time: a dead Java 8 application with 50,000 lines of code, no tests, and outdated Spring patterns could take a team months to migrate. The ROI does not justify the investment.

At L4, this economic calculation flips. An AI agent with a well-configured migration toolchain can execute the same migration in days, with human review time measured in hours rather than weeks. The cost of migrating the dead project is no longer an engineering quarter - it is an API bill measured in tens or hundreds of dollars and a week of sporadic human review. Projects that were permanently uneconomical to modernize by human effort become viable targets for agent-based modernization.

The shift is not just about cost - it is about the threshold for action. When modernization costs hundreds of thousands of dollars in engineering time, organizations make careful ROI calculations and most dead projects stay dead. When modernization costs hundreds of dollars in agent API costs plus review time, the threshold drops to "does this application still run in production?" If yes, modernize it. The risk of running outdated code - security vulnerabilities, dependency conflicts, incompatibility with modern infrastructure - almost always exceeds a hundred dollars.

This is one of the most striking reversals that AI agents produce in the tech debt space. The "dead project" category - which at L1-L2 represented a permanent, growing liability - effectively disappears at L4. Every project that still runs becomes modernizable, and the backlog of previously uneconomical modernizations becomes a weekend of agent work.

Why It Matters

  • Eliminates a permanent liability category - Projects that were written off as too expensive to modernize are a standing security and reliability risk; at L4, that category of risk can be eliminated systematically rather than managed indefinitely
  • Unlocks stranded value - Dead projects often contain business logic that cannot be replicated from documentation; modernizing them recovers access to that logic in a maintainable form rather than leaving it locked in unmaintainable code
  • Reduces infrastructure complexity - Running dead projects on old Java versions, old container images, or deprecated cloud APIs requires maintaining old infrastructure to support them; modernization allows infrastructure consolidation
  • Changes the conversation about technical viability - When modernization is cheap, the question "should we continue running this service?" becomes answerable without a large engineering project attached; the cost of evaluating and modernizing a candidate is low enough to just do it
  • Demonstrates AI ROI at the organizational level - "We modernized 15 projects that were previously uneconomical to touch" is a concrete, tangible outcome that non-technical stakeholders understand; it is a better AI ROI story than abstract productivity metrics

Getting Started

  1. Inventory the dead project list - Identify all applications in production that have not been actively developed in more than 12 months. Include internal tools, legacy services, and applications that have been in "maintenance only" mode. This is the target list for agent-based modernization.
  2. Triage by risk - Score each dead project on: security risk (CVE exposure, EOL dependency count), infrastructure compatibility (does it still run on current infrastructure?), and business value (does it still serve active users or processes?). Prioritize high-risk, high-value projects first.
  3. Run a pilot on one project - Select the highest-priority dead project and run the full agent-based modernization workflow on it. Document the process: which recipes were applied, what the agent fixed, what required human judgment, total API cost, total human review time. This pilot case study is the evidence base for the broader program.
  4. Establish a modernization standard for dead projects - Define what "modernized" means: current Java LTS, current framework major version, CI pipeline enabled, test coverage above threshold, no CVEs in dependencies. This standard is what the agent targets.
  5. Batch similar projects - Group dead projects by technology stack. Java 8 Spring Boot 1.x projects can be migrated using the same recipe set and agent configuration. Running the same migration on 10 projects simultaneously costs little more than running it on 1.
  6. Retire projects that fail the triage - Some dead projects serve no active users and contain no unique business logic. The agent modernization review process will surface these. Retire them rather than modernizing them; dead code that serves no purpose is waste even if it is modernized.
Tip

The most surprising output of a dead project modernization audit is often how many dead projects are still receiving live traffic. Run access logs and request metrics before the audit - you will find projects that were thought to be inactive that are serving thousands of requests per day from integrations nobody documented. These are your highest-priority modernization targets.

Common Pitfalls

Modernizing dead projects without checking if they should be retired. Not every dead project deserves to be kept alive. Before modernizing, confirm the project serves a real current purpose. If it does not, retire it rather than spending agent time (and API cost) modernizing something that should be decommissioned.

Running agents on dead projects without any test coverage. Dead projects typically have no tests. An agent cannot safely validate its own migrations without a test suite. The prerequisite for agent-based modernization of a dead project is at least a smoke test suite - minimal tests that verify the core endpoints or processes produce non-error responses. These can themselves be generated by an agent, but they must exist before migration.

Not monitoring post-migration for behavioral regressions. Dead projects that have been in production for years may have downstream dependencies that rely on specific behavioral quirks - response format idiosyncrasies, timing behaviors, error code patterns. Monitor post-migration traffic carefully for unexpected caller failures.

Expecting migration to make the code maintainable. Migrating a dead project to a modern framework version makes it compatible with current infrastructure and eliminates security debt. It does not make the code well-structured, well-tested, or easy to modify. Plan a second phase of structural improvement after the compatibility migration if the project is to be actively developed.

Underestimating the test writing effort. The agent migration is fast; the prerequisite test writing is where the time goes. For a 50,000-line dead project, generating adequate characterization tests may take more elapsed time than the migration itself. Budget for this and do not skip it.

How Different Roles See It

B
BobHead of Engineering

Bob has a list of seven "dead" internal tools that finance, HR, and operations still depend on. They run on Java 8, Spring Boot 1.5, and a deprecated internal authentication library. Nobody has touched them in three years. Bob has been carrying them as a liability on his tech debt register, marked as "too expensive to address," because manual modernization would take a developer six months across all seven projects.

Bob should run a dead project modernization sprint using agents. The prerequisites: generate smoke tests for each tool, then run the migration agent. Bob's estimate for the agent-based approach: two weeks of elapsed time, approximately 20 hours of human review time, and perhaps $300 in API costs. Compare to the six-month manual estimate. Even if the agent approach takes twice as long as estimated due to complications, it is still dramatically more economical. Bob should treat this as a pilot for agent-based technical debt reduction and plan to expand the approach to the rest of his dead project inventory.

S
SarahProductivity Lead

Sarah has been tracking these seven internal tools as a compliance risk: they run on software with known CVEs, they are not compliant with the current security standards, and any audit would flag them. She has been asking for modernization budget for two years and has been told it is not economically justified.

The agent-based modernization approach changes Sarah's business case. She no longer needs to justify a six-month engineering project. She needs to justify two weeks of agent work and 20 hours of human review. This is a case where the economic argument was always valid - the risk cost of running CVE-exposed software clearly exceeds the modernization cost - but the modernization cost was too high for the argument to win. At L4 costs, the argument wins easily. Sarah should use this case to establish a policy: any application running on EOL software with known CVEs is automatically authorized for agent-based modernization without requiring a separate business case.

V
VictorStaff Engineer - AI Champion

Victor ran the pilot on the first dead project: the internal HR tool that had not been touched since 2020. He spent a morning generating smoke tests using an agent (the tool had no tests at all), then ran the migration agent overnight. The next morning he had a PR with 847 file changes. He spent six hours reviewing the PR: spot-checking the most complex transformations, reviewing the agent's custom fixes, running the application locally, testing the core workflows manually.

The total elapsed time from "dead project on Java 8" to "migration PR ready for merge" was 18 hours, almost entirely unattended. Victor's hands-on time was the morning of test generation and the six-hour review. He estimates equivalent manual effort at four to five weeks. He is now running the agent on all seven dead projects in parallel. He expects all seven PRs within three days. The most important lesson Victor has documented: the test generation step, which he almost skipped, turned out to be essential - the agent found two genuine behavioral regressions that would have reached production without the smoke tests.

Where does your team actually sit on this?

This guide describes one level of one area. Run the assessment to place your team across all 16 areas, see which gates you have passed, and get a report you can take to your stakeholders.

Start the assessment