Buried in the background, legacy systems keep the wheels of modern businesses turning, sustaining core operations seamlessly while storing significant data, both turned into growing challenges. Over time, their once-shiny functionality loses its edge, revealing issues that can no longer be overlooked. What were once seen as solutions have become limits.
Over years of use, these systems accumulate complexity, making change prohibitively expensive or totally unviable. They struggle to keep up with modern demands, held back by performance bottlenecks and outdated frameworks. Imagine running a marathon in a pair of old, worn-out shoes: you could keep going, but you'll probably slip, get tired or lose the race, while the effort would leave you drained and far behind competitors in state-of-the-art shoes. But it’s not just their age that defines them: it’s their inability to adapt to modern requirements, compounded by tactical shortcuts that eventually form a house of cards.
For those delving deeper into this topic, consider "Software Wasteland" by McComb, a sharp assessment of application-centric paradigms and their long-term consequences - I loved it!
Even with their flaws, legacy systems are still essential, supporting key business processes and entire industries. At the same time, two large industries have developed: one for maintaining these systems and another for updating them - a silent acknowledgment of how widespread the corresponding issues are.
As Martin Fowler wisely put it:
The legacy systems of tomorrow are being written today
Whether we like it or not, dealing with these systems is a reality for any professional navigating the information landscape. They’re like “fantastic beasts” surrounded by a mythical aura and this article aims to bring clarity to the essential aspects that often remain hidden.
Identikit
Legacy systems aren’t just dusty relics from another era. Even today’s cutting-edge platforms can evolve - or even start - as "neo-legacy" systems.
Common traits include:
Skills shortage: expertise required to support or modify the system is limited or unavailable
Inflexibility: changes are costly and difficult to implement
Scale: their size and number of dependencies make isolated changes nearly impossible while affecting everything is too risky
The term "burning platform" is often associated with skill shortages - situations where vendors exit the market, support ends or required knowledge gets lost. This isn’t a flaw of the product itself but rather a human challenge that turns into a business-critical risk.
Inflexibility is another symptom. Don't be mistaken: while legacy systems often carry significant technical debt, they're not inherently faulty. Even well-built solutions can degenerate into liabilities if not managed properly or proactively.
Lastly, legacy systems tend to be huge, including millions of lines of code, thousands of tables or reports and countless dependencies. Their dimensions aren’t necessarily problematic but they increase risks and costs, especially when documentation and testing are lacking.
These traits do not need to occur simultaneously. Their full presence represents the phenomenon at its peak, but in practice, various nuances of each or the intensification of one in particular can emerge.
spoiler alert
“Wait, you mentioned reports?”
"Yes"
“Are you saying a reporting tool can turn into a legacy system?”
“Exactly”
A legacy system isn’t always the result of a gradual evolution from a once-efficient solution: here’s how to spot neo-legacy solutions:
High cost for simple changes
Complex and expensive integration with other systems
Struggle with data extraction and accessibility
Beware of platforms offering easy entry but heavy exit costs. Every ecosystem aims to lock you in.
Habitat
Legacy systems are not confined to ancient COBOL systems locked in dusty basements. They often hide at the beginning of the data lifecycle, on the sources, taking the form of mainframes, ERPs or CRMs. But tools downstream like ETL software, data warehouses and analytics platforms, can also join the club: over time they can turn into legacy systems, weighed down by inefficiency, lack of proper documentation and buried under complex dependencies.
Data warehouses built without clear governance, gradually turning into monolithic black boxes
Business intelligence platforms bloated with outdated or redundant reports no one dares to delete
SaaS tools hastily adopted and poorly integrated, creating a sprawl of overlapping functionalities
These situations often fly under the radar because they “work” - at least on the surface and as ad-hoc solutions fo short term needs.
Ready-to-burst bubbles
Legacy systems are like overfilled bubbles - one more push and they’ll pop. They’re weak points in your architecture and every change adds complexity, making them even more fragile. Keeping these systems alive often drains money that could be spent on innovation. That's when Business As Usual (BAU) eats all IT’s budget and nobody knows why. Removing them isn’t simple at all, especially when they’ve reached an advanced stage of (im)maturity.
What options do we have?
When dealing with legacy, most organizations adopt one of three approaches:
Ignore them: keep using them despite the inefficiencies. It’s tempting, but for how long can you afford the growing costs and risks?
Work around them: pull out the data you need and develop the new use cases elsewhere while avoiding major changes on the source. This is usually the first step in containing the dependency, after which you can assess whether to proceed with option 3 without treating it as a mandatory prerequisite
Retire them: it’s a big job, especially if the system is critical, but the longer you wait, the harder (and more expensive) it gets. Not always is this path feasible, but when it is, an incremental and iterative approach typically works better than a big bang - too risky and likely to end in failure
The choice depends on your organization’s risk tolerance, budget and ability to manage change - but be wary of half-measures that only delay the inevitable.
The role of AI
In a world where AI is making manual, time-consuming tasks faster and more efficient, it’s hard not to wonder if it can help with the challenges of managing or phasing out legacy systems. Let’s break down how AI can support this process in concrete ways:
Bridging knowledge gaps: generate documentation, map dependencies, track issues
Code conversion: assistance for converting older code into newer, more efficient programming languages or frameworks
Error detection and quality assurance: track anomalies, assess performance and suggest improvements
AI tools promise to simplify some of the heavy lifting in managing legacy systems. However, these technologies are often oversold as solutions to problems that are deeply systemic. AI might help you modernize a workflow, but it can’t fix the underlying design flaws that make your system unsustainable.
Additional considerations
Expanding the conversation around legacy systems, there are several other critical themes that emerge:
Cultural resistance: how do deeply rooted attitudes in organizations slow down modernization? In some cases, the human factor is part of the legacy system!
Hidden costs: aside from evolution or decommissioning costs, what hidden costs are we incurring by using outdated systems? What’s the cost of not acting?
Security risks: how vulnerable are these systems to breaches, given their age?
Customer impact: how does reliance on legacy infrastructure affect the end-user experience?
Food for thought
Legacy systems embody a paradox: invaluable yet obstructive. The biggest challenges with legacy systems often have little to do with technology. Resistance to change, fear of disruption, and lack of alignment between IT and business teams create a culture where the status quo feels safer than innovation.
Organizations must tackle these cultural barriers head-on, fostering an environment where modernization is seen not as a disruption but as an opportunity. Clear communication, robust change management, and a willingness to challenge entrenched mindsets are essential for success.
Thank you for reading! If you found this article helpful or want to share your thoughts, I’d love to hear from you. It’s a great way to help grow this space and support the work behind it.
Let’s keep the conversation going: connect with me on LinkedIn, where I share weekly insights and ideas on the world of data.