27.01.2026, By Stephan Schwab
Legacy modernization rarely happens in neat phases anymore. The strangler fig pattern — incrementally replacing pieces of a legacy system while both systems run — means discovery, decision-making, construction, and migration happen concurrently across different slices. Governing this requires tracking multiple work streams simultaneously, each at a different stage of maturity, rather than moving the whole project through sequential gates.
Traditional project thinking imagines modernization as a sequence: first understand the legacy system, then decide what to build, then build it, then migrate. Each phase completes before the next begins. Governance checkpoints mark the transitions.
This mental model made sense when systems were replaced in big-bang cutovers — one weekend, everything switches. But big-bang replacements are increasingly rare, and for good reason. They concentrate risk into a single moment. They require understanding the entire legacy system before replacing any of it. They demand that the new system be complete before anyone uses it.
The strangler fig pattern works differently. You identify a slice of functionality, understand that slice, build its replacement, migrate its users, and decommission that piece of the legacy system — while the rest continues running. Then you do it again with another slice.
This means at any given moment, different slices are at different stages. You’re still discovering some parts of the legacy system while you’re already migrating users off other parts. Governance that assumes sequential phases can’t see this clearly.
Rather than phases, think of modernization as four types of work happening concurrently, each applying to different slices of the system at any given time.
Understanding what the legacy system actually does. This is
craft work: investigation, hypothesis, verification. Legacy systems accumulate behavior over decades. Documentation describes intent, not reality. The developers who understood the quirks have departed.
Discovery happens throughout the project, not just at the beginning. When you start working on a new slice, you discover things about that slice. When migration reveals unexpected behavior, you’re doing discovery. When users report that the new system handles something differently, discovery explains why.
Governance questions for discovery work:
Choosing what the replacement should do. Not every legacy behavior deserves replication. Some behaviors are essential business logic; others are accidental complexity from old constraints; others are bugs that users have worked around for so long they’ve become expectations.
Decision work happens for each slice as you prepare to build its replacement. It may also happen when construction reveals that earlier decisions were wrong, or when migration surfaces behaviors no one anticipated.
Governance questions for decision work:
Building the replacement components. Once you understand a slice and have decided what its replacement should do, construction often follows trade patterns — established approaches, standard frameworks, familiar architectures. The novelty was in discovery and decision; the building is execution.
Multiple slices may be under construction simultaneously. Some may be nearly complete; others just starting. Governance needs to track each without assuming they’re all at the same stage.
Governance questions for construction work:
Moving users and data from the legacy slice to its replacement. This is often the hardest work — not technically, but operationally. Running systems in parallel, synchronizing data, shifting traffic gradually, handling edge cases where old and new behave differently.
Migration work may surface problems that send you back to discovery, decision, or construction. A slice you thought was complete turns out to handle a case you didn’t know about. Users report behavior they depended on that the replacement doesn’t provide. The integration between the new slice and remaining legacy components doesn’t work as expected.
Governance questions for migration work:
Effective modernization governance tracks a portfolio of slices, each at its own stage. This looks less like traditional project oversight and more like portfolio management.
A useful governance view shows:
| Slice | Discovery | Decisions | Construction | Migration | Blocking Issues |
|---|---|---|---|---|---|
| Billing | Complete | Complete | Complete | 60% migrated | Data sync latency |
| User Auth | Complete | In progress | Not started | — | Awaiting security review |
| Reporting | In progress | — | — | — | Key user on leave |
| Inventory | Not started | — | — | — | Depends on Billing |
This view reveals several things traditional project tracking misses:
Dependencies between slices. Some slices can’t start until others complete. Some share components. Governance can see these relationships.
Where work is stuck. A slice that’s been “in progress” on decisions for months needs attention. A slice that’s 40% migrated and hasn’t moved in weeks has a problem.
Resource allocation. If too many slices are in construction and nothing is migrating, teams may be avoiding the hard operational work. If everything is in discovery and nothing is being built, investigation may have become an excuse for inaction.
Actual progress. Migrated slices with decommissioned legacy pieces represent real progress. Everything else is work in progress.
The concurrent nature of strangler fig modernization means discoveries in one stream affect work in others.
Discovery reveals that a decision was wrong. A slice under construction turns out to need capabilities you decided not to include. Do you revise the decision, extend the slice, or accept a gap?
Construction exposes incomplete discovery. Building the replacement surfaces legacy behaviors no one knew about. Do you pause construction, document and decide quickly, or build what you know and handle the rest later?
Migration proves the replacement inadequate. Users in production find problems that testing missed. Do you roll back, fix forward, or run both systems longer?
Governance that treats any backwards movement as failure creates incentives to hide problems. Governance that accepts iteration while monitoring for genuine stalls enables teams to respond to reality.
Rather than tracking percentage complete, effective governance monitors signals that reveal actual health.
“How much will this cost?” is hard to answer for strangler fig modernization because you’re not building a single thing — you’re replacing a system piece by piece.
Approaches that work:
Per-slice budgeting. Estimate and fund each slice separately. Early slices inform estimates for later similar slices. Variation averages out across the portfolio.
Burn rate over time. Rather than asking “how much total,” ask “how much per month” and “for how long.” Track whether burn rate is producing proportional migration progress.
Value-based prioritization. Not all slices are equally valuable. Prioritize slices that relieve the most pain, reduce the most risk, or enable the most opportunity. Stop when the remaining legacy pieces aren’t worth replacing.
Approaches that fail:
Demanding total cost upfront. You don’t know how many slices exist until you start. You don’t know how hard each slice is until you work on it. Total estimates made early will be wrong.
Treating all slices as equivalent. Some slices are simple; others are deeply entangled. Governance that assumes uniform effort misunderstands the work.
Waiting until everything is “done.” With strangler fig, you can stop when remaining slices aren’t worth the effort. Governance should ask “is this slice worth it?” not just “is it done?”
Organizations often reach for familiar management frameworks when governing modernization. This is understandable — executives want structure they recognize. But here’s an uncomfortable truth: management frameworks have nothing to offer for the actual software development work. They don’t help developers understand legacy code, make architectural decisions, write better tests, or migrate users safely.
SAFe, LeSS, PMI, PRINCE2, and similar frameworks concern themselves with organizational coordination, resource allocation, reporting structures, and stakeholder communication. These are legitimate concerns — but they are entirely separate from software development. No management framework teaches you how to refactor a legacy codebase, design a strangler facade, validate behavior equivalence, or handle data migration. No planning ceremony produces better code. No project charter improves your test coverage.
This matters for legacy modernization because the actual difficulty lies entirely in the technical work: understanding what the legacy system really does, deciding what behavior to preserve, building replacements that work correctly, and migrating without disrupting users. Management frameworks are silent on all of this.
What management frameworks address:
What management frameworks don’t address — and can’t:
Approaches that actually help the work:
Kanban-style visualization works for tracking slices across stages — but this is a visualization technique, not a management framework. Teams benefit from seeing work items move through columns with WIP limits. The board doesn’t tell you how to do the work; it helps you see where work is stuck.
Cynefin (Dave Snowden) helps governance understand why different work streams need different approaches — discovery work lives in the complex domain; construction work is complicated. But again, this is a sensemaking tool for choosing approaches, not a prescription for executing them.
Real Options thinking treats each slice as an option — investing in discovery buys the option to build. This helps with prioritization decisions, not with the actual building.
The pattern is clear: useful approaches help you see, decide, or prioritize. None of them help you actually do the technical work. That requires engineering skill, domain knowledge, and hands-on experience — none of which come from management frameworks.
The danger:
When organizations invest heavily in management framework adoption, they often believe they’ve addressed the modernization challenge. They haven’t. They’ve addressed the coordination and reporting challenge — which is real, but much smaller than the technical challenge. A perfectly governed project with inadequate technical capability will still fail. An ungoverned project with excellent technical execution might succeed despite the chaos.
Strangler fig modernization produces incremental value — each migrated slice is a piece of legacy system that no longer needs maintenance, a piece of technical debt retired, a group of users on a better system. But it doesn’t produce dramatic milestones.
Executives accustomed to big project launches may find this unsatisfying. There’s no ribbon-cutting moment — just the gradual dimming of the legacy system’s lights. Governance that demands visible milestones may create pressure to batch work artificially, losing the risk reduction that incremental migration provides.
The organizations that modernize successfully are those where governance values sustainable progress over theatrical milestones. They celebrate each decommissioned legacy piece. They trust that the system is getting better even when there’s no single moment to point to. They understand that software development includes significant design work — and that design work applied slice by slice, with learning between slices, produces better results than attempting to design everything upfront.
The legacy system took years to build and decades to evolve. The strangler fig will take time too — but it will produce value along the way, not just at the end.
Let's talk about your real situation. Want to accelerate delivery, remove technical blockers, or validate whether an idea deserves more investment? Book a short conversation (20 min): I listen to your context and give 1–2 practical recommendations—no pitch, no obligation. If it fits, we continue; if not, you leave with clarity. Confidential and direct.
Prefer email? Write me: sns@caimito.net