Home
/
/
Technical Debt: The Governance Failure Nobody Is Fixing
14 Minuti

Technical Debt: The Governance Failure Nobody Is Fixing

When everything else feels urgent, technical debt can wait. Until it can't.

pexels-cottonbro-6803523.jpg

Key Takeaways

 

  • Most organisations treat technical debt as a developer problem. It isn't. It belongs on the business agenda, with a named owner and a funded plan.
     
  • The people who feel technical debt at every sprint rarely control the roadmap. So they stop raising it. And it grows.
     
  • AI lands on whatever's already there, and if the infrastructure is weak, it creates problems faster than it solves them.
     
  • Ignoring debt doesn't save money. Each quarter, a little more engineering time goes to maintenance. Each roadmap cycle, something else gets deprioritised. The budget stays the same on paper; the capacity doesn't.
     
  • Debt that's visible and owned gets addressed. The rest just accumulates, absorbing capacity that was supposed to go somewhere else.


 

What Is Technical Debt?

 

Most people run into technical debt before they know what to call it. It's the feature that should take a week but takes a month. It's the codebase everyone apologises for before opening. It's the system that works until it doesn't.

Back in 1992, Ward Cunningham coined the term technical debt and put it simply: shipping imperfect code is like taking out a loan. The debt metaphor was deliberate. A little financial debt speeds things up, as long as you pay it back. Most software development teams don't.

The reasons are usually mundane. The proper solution takes longer than anyone wants to spend right now, so a quick fix ships instead. The system grows around it, and unpicking it later costs more than doing it right would have.

Its stubbornness comes from the fact that the people who feel it most usually don't decide what to fix. Developers face it every sprint. They stop building new things and start maintaining old ones. Budgets that could fund innovation instead fund firefighting. To everyone else, it's invisible until it isn't: slower delivery, bugs that keep returning, and customers who eventually leave.

By the time people notice it enough to pay real attention, it has been growing for years.


 

What Are the Types of Technical Debt?

 

Technical debt comes in different forms, and the form matters. Lumping them together is why so many teams end up managing the wrong problem.

Martin Fowler's technical debt quadrant maps the territory across two axes: deliberate versus inadvertent, and reckless versus prudent. Between them, they produce three types worth keeping straight. 

Deliberate debt is chosen: a team knowingly ships something fragile to hit a deadline, with a repayment plan already in mind. 

Accidental debt creeps in through poor design decisions, skill gaps, or requirements that were misread at the start. And then there's 

bit rot, which doesn't involve a mistake at all. It's what happens when previously solid code becomes outdated simply because the systems around it kept moving.

The quadrant's most useful distinction is between prudent and reckless. Prudent deliberate debt is a conscious trade-off. Someone decided, someone owns it. Reckless inadvertent debt is the dangerous variety: accumulated without any awareness of software engineering best practices, with no clear owner and no repayment plan. That's the kind that doesn't just slow teams down. It tends to stay.

IBM breaks technical debt into further categories worth knowing: code debt, design debt, infrastructure debt, test debt, and documentation debt. We've added one more, called context debt, which IBM doesn't cover but reflects a pattern we see as AI joins the stack.

The damage often comes from the kind that never triggers an incident. Documentation debt won't bring a system down; design debt won't show in a monitoring dashboard. It shows up when a developer leaves, and the knowledge goes with them. It also happens when a new integration takes three months because the architecture debt in the existing codebase cannot handle anything new.

 

Examples of Technical Debt

 

IBM breaks technical debt into categories worth knowing: code debt, design debt, infrastructure debt, test debt, and documentation debt. We've added one more category, called "context debt". IBM doesn't cover it, but it reflects a pattern we see as AI joins the stack.

Industry Type of Debt How It Shows Up Business Impact
Financial Services Infrastructure debt Core banking systems running on decades-old mainframes with modern interfaces bolted on Products take 12 to 24 months to launch, versus 3 to 6 months for fintechs. Maintenance alone consumes around 70% of IT budget
Retail and E-commerce Design debt Monolithic platform that can't scale during peak demand Site instability when it matters most, lost revenue, customer experience that drives people elsewhere
Healthcare Documentation debt Undocumented integrations between clinical systems and third-party tools Risky to change anything, slow onboarding, audit failures
Manufacturing Test debt Automated systems deployed without proper test coverage to meet deadlines Defects reach the production line before anyone catches them
Public Sector Code debt Legacy applications in outdated languages with shrinking developer communities It's hard to hire people who can maintain it and even harder to change without breaking something else
SaaS and Technology Design debt Microservices that grew without clear ownership or consistent API standards Teams block each other, incidents are hard to trace, scaling gets expensive fast
Industry Agnostic Context Debt Stale or superseded information remaining in the AI's context, skewing outputs without any visible signal that something is wrong AI producing plausible but outdated outputs that are difficult to detect, eroding trust and creating downstream rework

 

The damage often comes from the kind that never triggers an incident. Documentation debt won't bring a system down; design debt won't show in a monitoring dashboard. It shows up when a developer leaves, and the knowledge goes with them.

It also happens when a new integration takes three months because the architecture cannot handle anything new.

A 2025 CAST report analysed over 10 billion lines of code. It covered 47,000 applications across 17 countries. The report found global technical debt equals 61 billion workdays of repair time. Even if every developer in the world stopped building new things and worked on nothing else, it would still take nine years to clear. That's the scale of accumulated shortcuts at a global level, and it's still growing.

Some of the most well-known examples of technical debt come from decisions that seemed reasonable at the time. Y2K cleanup efforts cost an estimated $100 billion because of a date-handling shortcut made years earlier in existing code. HealthCare.gov's troubled 2013 launch exposed what happens when rushing software to meet a delivery deadline forces costly rework almost immediately after going live.


 

The Cost of Technical Debt: Common Misconceptions That Are Costing Your Business

 

Many businesses underestimate technical debt because they've got the wrong picture of what it is.

"It's an engineering problem." 

Most technical debt frameworks assume whoever introduced the debt at least knew the trade-off they were making. That's not always true. 

In organisations that lean on system integrators or contractors, the people building the systems won't be there when the problems surface. Their incentives stop at handover, and the debt that follows is simply what happens when nobody building it has a reason to care what it looks like in three years.

"It's the result of bad engineering."

That framing turns a structural issue into a blame conversation. Hard to discuss, harder to fix. Most technical debt comes from reasonable decisions made under real constraints, not carelessness. Treating it as a failure of software development teams is one of the main reasons it doesn't get addressed early enough.

"We can ignore it as long as we keep shipping." 

Delivery speed hides the cost for a while. A 2025 Pegasystems study of over 500 IT decision-makers found a global enterprise wastes over $370 million yearly. The main cause was technical debt. Treat debt as a developer issue, and it never reaches the people with the budget to fix it. Miss it on the surface, and it hardens. Then the talk shifts from "How do we fix this?" to "How did it get this bad?"


 

The Technical Debt Conversations Happening on Reddit

 

Reddit isn't short of opinions on technical debt, and the conversations are worth paying attention to.

In r/softwarearchitecture, the topic that came up most was the debt nobody planned for. A sensible design decision, made for a specific problem, turns into a liability when the system grows around it and problems B, C, and D arrive. One developer compared it to an archaeological site: a quick fix from 2019, built upon by someone who didn't know it was a quick fix, built upon again by a third person who inherited both. Each layer made sense at the time, but the original author had left years before anyone started asking questions. This is unintentional technical debt at its most common.

AI conversations on r/ExperiencedDevs are newer and harder to dismiss. Development teams can generate code dramatically faster than before, but structural quality isn't consistent. The kind of deep architectural mess that used to take a decade to accumulate organically can now be produced in a week.

For IT leaders, that means the debt clock is running faster than ever, and the teams below them may not be saying it out loud.

Then there's the organisational pattern, which comes up across all the threads. Developers raise the issue, it lands on a roadmap, and a feature gets prioritised. The agile sprint moves to the next quarter, and everyone in the room knows it will move again. 

After enough cycles, engineers stop raising it, because being the person who keeps bringing up technical debt becomes its own professional risk. That's what turns a manageable problem into the one that eventually lands on an IT leader's desk, with slower delivery and rising costs and no obvious starting point.

 

The Cost of Ignoring Technical Debt

 

The cost of technical debt is the growing weight of unfinished systems. It makes every new change harder than it should be. A change that touches one module touches five others, and a straightforward integration takes three months. It's difficult to point it towards a single incident. 

That's what makes it so easy to absorb without noticing.

Each quarter, a little more engineering time goes to maintenance. Each roadmap cycle, something gets deprioritised to keep the existing systems running. The budget doesn't shrink on paper, but the capacity does. 

By the time leadership is asking why delivery has slowed or why the AI rollout is behind schedule, the debt has been building up for years.

It doesn't announce itself as a crisis. It just raises the cost of everything else, gradually, until the foundations can't support what you're trying to build on top of them.

 

Where Does Technical Debt Fit Into Your AI Roadmap?

 

AI roadmaps are generally built around implementation: which tools to adopt, which use cases to prioritise, and what the timeline looks like. There's not much emphasis on existing technical debt. That gap matters, because IBM projects that AI's share of IT spending will rise from around 11% to over 18% in the coming years, and debt doesn't disappear just because AI arrives on top of it.

If the foundations are weak, AI amplifies the problems alongside the capabilities. It's one of the most common reasons digital transformation programmes run late. Organisations that launch initiatives on top of unaddressed debt tend to find out the hard way: significant rework, typically within 12 to 18 months.

Treating debt reduction as part of the roadmap is the fix. Not a parallel workstream or something to revisit later. The organisations that get lasting value from AI are treating the infrastructure as part of the investment before the first model went live.


 

Technical Debt Statistics: What the Latest Data Reveals

 

Deloitte's 2026 Global Technology Leadership Study puts technical debt at between 21% and 40% of IT spending annually. For most enterprises, it's spent on maintenance, firefighting, and working around systems that were never properly finished. This is budget that could have gone toward AI, new products, or simply shipping faster.

The UK numbers are worse. The UK Government's State of Digital Government Review estimates £45 billion a year in productivity savings lost to outdated IT. Legacy systems now account for 28% of central government IT spend. Meanwhile, Cloudhouse's State of Technical Debt 2025 found that 61% of UK organisations say legacy systems are actively blocking AI adoption. Yet only 36% have a fully funded modernisation plan, despite 88% claiming a two-year roadmap. The ambition is real, but the money isn't there yet.

And it's getting harder to ignore. Forrester projects that three out of four technology decision-makers will see their technical debt reach moderate or high severity by 2026, largely because new investment keeps landing on top of systems that were already struggling to keep up.

 

The Real Value of Investing in Technical Debt Repayment

 

Paying down technical debt is a growth decision, where the returns show up well outside the engineering team.

Faster delivery. McKinsey found that companies addressing technical debt systematically achieve 20 to 40% productivity gains in software development. Less complexity means fewer things to work around every time something new ships.

Fewer outages. Cleaner systems fail less often. Every incident avoided is an incident response team that stays on planned work and a customer who never has a reason to complain.

Compliance risk drops. Cloudhouse's 2025 survey of 250 UK IT leaders found that 48% had already encountered compliance failures during audits because of outdated infrastructure. Newer systems are easier to map, easier to evidence, and present a smaller surface for auditors to find problems in.

AI becomes viable. Without modern APIs and clean data flows, AI tools stall, then require expensive remediation before anything useful ships. 61% of UK organisations reporting that legacy systems are actively blocking AI adoption are facing a plumbing problem.

A good analogy is commercial property. A landlord who skips repairs doesn't save money; the damage accumulates until the fixes become structural. The building gets harder to insure and harder to operate. Organisations that pay down technical debt progressively spend less overall and hold onto the options they'd otherwise lose.


 

How Liferay Helps Teams Reduce Technical Debt

 

Most platforms add capability on top of whatever's already there. Liferay DXP is built to replace the underlying structure, which is where debt actually lives.

Platform consolidation: Fragmented systems that were never designed to interact get replaced by one governed platform. Less to maintain, fewer points of failure.

Modularity and reusability: Pre-built components mean development teams stop rebuilding the same things repeatedly. Less custom code means lower long-term maintenance costs.

Upgrade-friendly architecture: Upgrades on legacy systems are often where architecture debt compounds fastest. Liferay's approach keeps that manageable. The Veriday guide on reducing technical debt during Liferay DXP upgrades covers the specifics.

AI readiness: Without clean APIs and modern architecture, AI integrations stall or require expensive remediation before anything useful ships.

BRE, the UK's Building Research Establishment, had 81 sites spread across multiple platforms. Security risks were growing. IT teams faced heavy workloads. After moving to Liferay DXP, they reduced 81 sites to 9. That is an 88% cut in their digital footprint. They also lowered operating costs. Content teams could manage their own work. The tech debt wasn't just in the code. It was in the structure, and that's what changed.


 

Technical Debt Best Practices: How to Manage Technical Debt in Enterprise Software

 

Here are a few best practices from Liferay's expert engineers on making that a reality.

Identify it first, because it won't announce itself. Feature flags are a clean example. Useful in the moment, but in project-driven environments, the PM who ordered them has moved on long before anyone budgets to remove them. 

Code reviews and automated testing catch accidental debt before it compounds. CI pipelines do something slightly different: they track performance regressions as they happen, rather than after a release has already shipped them to production. 

Technical debt is a programme of work. Short-term stakeholders optimise for immediate outcomes, which is clearly their job. But it means architectural governance has to exist precisely to stop individual delivery decisions from eroding the direction everyone agreed on. 

Companies like Shopify dedicate 25% of development cycles to managing technical debt, running dedicated debt sprints alongside feature delivery. Test driven development helps prevent unintentional technical debt from accumulating in the first place.

Have the right stakeholders accountable. In large organisations, change spans multiple systems, and no single project can contain it. Each team picks whatever gets their work finished, with no mandate to return. Nobody owns the view across all of them, and the architecture pays for it.

The Software Engineering Institute has argued for cross-programme governance of technical debt: someone outside the individual team needs to own it, track it, and be accountable when it isn't addressed. Leaving it inside the team is how it stays invisible. 

Frame debt in costs that leadership already tracks. Delivery speed, compliance exposure, support overhead. Put it in those terms and it lands on the right desk. A tech debt registry that tracks and prioritises debt tasks alongside new features makes this visible in a way that sprint planning conversations rarely do.

Catch it before it ships. Software modernisation efforts at introduction cost a fraction of fixing it after two years of code have been built around it. Using automated testing, continuous integration, and reducing manual effort through low-code platforms can prevent technical debt from accumulating during software development.

The common thread is visibility. Debt that's named and owned gets managed, and debt that isn't just grows, absorbing capacity that was supposed to go elsewhere. The teams that handle it well have simply stopped assuming someone else is keeping track.


 

Technical Debt Isn't Going Away. Is Your Business Prepared?

 

Technical debt doesn't announce itself. It shows up in the release that took three months instead of three weeks, the AI initiative that stalled before it started, and the contractor who shipped and left.

The organisations that handle it well have made a decision to own it, not letting it drop to a second thought. Someone is accountable across programmes, with a clear definition of the debt and a plan to address it progressively. It sits on the roadmap alongside features, not deferred to a sprint that never comes. And there are honest conversations happening about whether the foundations can support what's being built on top of them.

If you're planning any kind of digital transformation, these are worth sitting with honestly:

  • Can your platform take on new AI tools without significant rework first?

  • Do your teams spend more time maintaining what's already there than shipping what's next?

  • When debt surfaces, is it something you planned for or an incident?

If any of those sit uncomfortably, that's where the work starts. Request a demo to talk through your specific situation.

 


GUIDE
Is your platform ready for what comes next?
Download our practical guide, Lost in Translation: The Cost of Systems That Won't Speak the Same Language, to see how IT leaders are turning digital sprawl into a platform for growth — without replacing what's already working.

Download the Ebook
 
Not sure where your debt actually sits? Talk it through with our team.

Book a personalised demonstration.

 

FAQ

 

What is meant by technical debt?

Technical debt refers to the future cost of quick solutions made during software development. Ward Cunningham coined the term technical debt in 1992, using a debt metaphor to explain it: shortcuts taken now accrue interest as future development becomes harder and more expensive. The term technical debt describes the gap between what was built and what should have been built.

What are examples of technical debt?

Examples of technical debt include feature flags left in production, tightly coupled components that make a single code change costly, missing documentation that slows onboarding, skipped automated testing that creates ongoing bug fixes, and quick fixes built upon unknowingly by future development teams. At scale, Y2K remediation cost an estimated $100 billion. HealthCare.gov's 2013 launch is another widely cited case where rushing software to meet a deadline created expensive rework almost immediately.

What are the 4 types of technical debt?

The main types of technical debt are: intentional technical debt (deliberate trade-offs to meet delivery deadlines), unintentional technical debt (accidental mistakes or skill gaps in the development process), bit rot (existing code that becomes outdated as systems evolve), and documentation debt (code changes not properly recorded). IBM also identifies code debt, design debt, infrastructure debt, and test debt as distinct categories across the software development lifecycle.

What are the 4 quadrants of technical debt?

The technical debt quadrant maps debt across deliberate/inadvertent and reckless/prudent axes. The four positions are: prudent-deliberate (knowingly taking on debt with a repayment plan), reckless-deliberate (shipping without design considerations to hit a deadline), prudent-inadvertent (realising after the fact that a decision was suboptimal), and reckless-inadvertent (unintentional debt created without awareness of software engineering best practices). Most organisations carry all four types simultaneously.

What's the difference between technical debt and a bug?

Bugs are unintentional. The system didn't do what it was supposed to, and the fix is straightforward in principle. Technical debt is often a conscious choice: a software development team ships a quick integration knowing it'll need rebuilding properly in 12 months. The debt is the gap between what was built and what should have been built. The trouble is it doesn't break anything immediately, so it sits there accumulating interest while the roadmap moves on.

How do we know how much technical debt we actually have?

You probably won't land on a precise figure, and that's fine. What you need is enough visibility to prioritise. Look at how long simple changes actually take, how often deployments fail, and what proportion of engineering time goes on maintenance versus new work. Automated testing tools and code reviews can estimate debt more formally across a codebase. The goal is a clear enough picture that the right things get addressed in the right order.

Who owns technical debt in an organisation?

In most organisations, nobody does. That's usually the problem. Developers feel the weight of it every sprint but don't control the roadmap. Product managers prioritise features because that's their remit. Without someone accountable for the architectural view across programmes, debt accumulates by default. It needs a named owner with a cross-project mandate, and the authority to act on it.

Does moving to the cloud reduce technical debt?

It depends entirely on how the migration is done. Moving legacy systems to cloud infrastructure without modernising them first just relocates the debt. The underlying architecture problems travel with the workload. Cloud deployments do reduce infrastructure debt over time, because managed services handle patching, scaling, and security at the platform level. But that benefit only accrues if the systems running on them were properly rebuilt, not just moved.

How long does it take to see results from addressing technical debt?

Some improvements show up within months: deployments get faster, incidents drop, and onboarding new developers takes less time. The bigger gains reveal themselves slowly. The realistic expectation is consistent progress, quarter on quarter, rather than a single visible turning point.

Risorse Aggiuntive
mina-rad-qFSQFSmfZkA-unsplash.jpg
Conquering Technical Debt & Legacy Systems: A Roadmap to Modernizing Your Digital Foundation
Tired of technical debt and legacy systems? Discover a roadmap to modernizing your digital foundation. Learn how to conquer IT challenges with insights from Liferay and Veriday experts, covering everything from ROI to headless APIs.
Tempo di lettura: 5 minuti
7 agosto 2025
Why AI Integration Stalls IMG.png
Why AI Integration Stalls in Enterprise IT
AI doesn't break systems. It exposes what’s already broken.
Tempo di lettura: 10 minuti
28 aprile 2026
Webinar+Ai (1).png
AI Transformation: How to Escape the Pilot Trap and Scale Enterprise AI
Discover how to move beyond isolated testing to implement a true AI Transformation that delivers real value, scalability, and security across your enterprise strategy's core processes.
Tempo di lettura: 5 minuti
8 maggio 2026

Scopri come creare una soluzione adatta alle tue esigenze