Technical debt in ML systems: a honest accounting

Technical debt in ML systems: a honest accounting

Simor Consulting | 13 Jul, 2026 | 05 Mins read

Google’s 2015 paper “Hidden Technical Debt in Machine Learning Systems” described a problem that has only gotten worse in the decade since. The paper’s central observation was that the model itself is a tiny fraction of an ML system’s codebase, and the surrounding infrastructure — data pipelines, feature engineering, serving layers, monitoring, validation — is where the debt accumulates. The model is the ice cream. The system is the glacier.

Most organizations treat ML technical debt the way they treat traditional technical debt: as a backlog item that will be addressed when there is time. This approach fails for ML systems because ML debt is qualitatively different from traditional software debt. It is harder to detect, harder to attribute, and harder to repay. Organizations that do not account for these differences will find their ML systems becoming increasingly expensive to maintain, increasingly fragile in production, and increasingly resistant to improvement.

Why ML debt is different

Traditional technical debt manifests as code complexity, outdated dependencies, and architectural mismatches. These are visible to engineers who work with the code. An engineer who reads a tangled function recognizes the debt. A code review that flags an outdated dependency identifies the debt. The debt is in the code, and the code is inspected regularly.

ML debt is partially invisible to code inspection. The model weights are not readable. The feature engineering logic may be correct in isolation but produce problematic interactions with the data distribution. The training-serving skew is not visible in either the training code or the serving code — it is visible only in the difference between them, which requires comparing two systems that are maintained separately.

Consider a concrete example. A fraud detection model uses a feature called “transaction velocity” — the number of transactions in the last hour. The training pipeline computes this feature from historical data with a one-hour window. The serving pipeline computes it from live data with a one-hour window. Both implementations are correct. But the training pipeline uses UTC timestamps, and the serving pipeline uses local timestamps because the serving system was built by a different team that inherited a legacy configuration. The feature values differ by the time zone offset. The model still works — the velocity signal is strong enough that the offset does not destroy its predictive power — but the accuracy is measurably worse than it should be, and the degradation is invisible because the feature values look reasonable.

This kind of debt is not detectable by code review. It requires comparing the behavior of two systems in production, which requires the instrumentation to capture that comparison, which requires someone to think about the comparison as a possibility. Most organizations do not have this instrumentation, which means the debt exists undetected and compounds silently.

The five categories

ML technical debt falls into five categories, and each one has characteristics that make it harder to address than its traditional software equivalent.

Data debt. Training data accumulates staleness, bias, quality degradation, and schema drift. Unlike code debt, data debt cannot be fixed by refactoring. It requires re-acquiring, re-cleaning, or re-labeling data, which is expensive in both time and money. The cost of data debt is paid in model accuracy degradation, and the degradation is gradual enough that it is attributed to “the model getting old” rather than to the data pipeline producing stale or biased inputs.

Feature debt. Feature engineering logic accumulates complexity as new features are added and old features become unused but are not removed. Features interact in ways that are not documented and not understood by anyone on the current team. Removing a feature risks breaking a model that depends on it, but keeping the feature adds serving latency and maintenance burden. The debt grows because adding features is easy and removing them is risky.

Infrastructure debt. The ML infrastructure — training clusters, feature stores, model registries, serving systems — accumulates configuration drift, outdated dependencies, and architectural shortcuts taken under deadline pressure. This debt is similar to traditional infrastructure debt, but it is more expensive to repay because ML infrastructure has more dependencies and fewer standardized operational patterns.

Monitoring debt. ML systems need monitoring for both system health (latency, throughput, errors) and model health (accuracy, drift, bias). Most organizations monitor system health and underinvest in model health monitoring. The debt is the gap between what you can see about your model’s behavior in production and what you need to see to detect degradation before it affects users.

Organizational debt. The team structure, ownership model, and operational practices around ML systems accumulate debt as the systems mature. A model that was built by one person and is now critical infrastructure may have no documented ownership, no runbook, and no on-call rotation. The organizational debt is the gap between the system’s operational maturity and the organization’s operational practices for that system.

Measuring the debt

The first step in managing ML debt is measuring it, and the measurement is harder than for traditional software debt because there is no equivalent of cyclomatic complexity or dependency freshness.

I use four proxy measurements.

Model accuracy over time. Track your model’s evaluation metrics on a held-out test set, refreshed monthly. If accuracy is declining, you have data debt or feature debt, and the rate of decline is the interest rate on the debt.

Incident frequency and resolution time. Track how often ML-related incidents occur and how long they take to resolve. Increasing frequency or resolution time indicates infrastructure debt or monitoring debt.

Time to retrain. Measure how long it takes to retrain and redeploy the model from scratch. If this time is increasing, your infrastructure debt is growing.

Team cognitive load. Ask the team how much of their time is spent on maintenance versus new development. If the maintenance fraction is above fifty percent, your debt is consuming more capacity than your development.

Repayment strategies

The organizations that manage ML debt well share three practices.

Budget for debt repayment explicitly. Allocate a fixed percentage of ML engineering capacity — typically twenty to thirty percent — to debt repayment. This is not capacity that could be used for new features. It is capacity that is already being consumed by the debt, either visibly through maintenance work or invisibly through degraded model performance. Making the allocation explicit makes the cost visible and the repayment intentional.

Prioritize debt by its compound rate. Not all debt compounds at the same rate. Data debt compounds faster than infrastructure debt, because data quality degrades continuously while infrastructure degrades only when changes are made. Prioritize the debt that compounds fastest, because it is the debt that will become most expensive to repay if left unaddressed.

Build debt detection into the development process. Every model change should include a check for new debt. Did the change add features without removing unused ones? Did the change introduce a dependency that will age? Did the change add complexity to the training pipeline without adding corresponding monitoring? Making debt detection part of the development workflow prevents new debt from accumulating faster than old debt is repaid.

The honest assessment

If you have an ML system in production and you do not know how much technical debt it carries, you have more debt than you think. The debt is there. It is accumulating. And it is costing you in model accuracy, incident frequency, team capacity, and time-to-market for new features. The question is not whether you have debt. The question is whether you are measuring it, managing it, and budgeting for its repayment.

The organizations that will have the most capable ML systems in three years are not the ones building the most models today. They are the ones managing the debt in the models they have already built. Accumulation is easy. Maintenance is hard. And the gap between the two is where competitive advantage in ML actually lives.

Shipping a production AI system?

Find the control gaps before they turn into incidents. Take the AI Production Scorecard for a fast baseline across the seven layers, or book an architecture review and we will turn it into a hardening plan.

Similar Articles

Why most AI transformations fail (it's not the technology)
Why most AI transformations fail (it's not the technology)
20 Apr, 2026 | 04 Mins read

The CTO of a mid-size financial services firm told me they had spent $4 million on AI tooling in eighteen months. They had three large language model providers under contract, a vector database cluste

The case for AI skepticism in your data strategy
The case for AI skepticism in your data strategy
27 Apr, 2026 | 04 Mins read

I was in a strategy session where a VP of Data told the room that generative AI would "eliminate the need for data analysts within two years." The room nodded. Budget was reallocated. Three analyst po

What we can learn from the DevOps revolution applied to AI
What we can learn from the DevOps revolution applied to AI
04 May, 2026 | 04 Mins read

In 2009, deploying software to production was an event. It involved a change request, a maintenance window, a runbook, and a prayer. Developers wrote code, then threw it over the wall to operations, w

Building a data-driven culture: lessons from 50 engagements
Building a data-driven culture: lessons from 50 engagements
13 May, 2026 | 05 Mins read

The phrase "data-driven culture" has been emptied of meaning by overuse. It appears in every strategy deck, every job posting, every conference talk. Everyone claims to want it. Almost no one can desc

The ethics of training on copyrighted data — a nuanced take
The ethics of training on copyrighted data — a nuanced take
18 May, 2026 | 05 Mins read

The legal system has not caught up with the practice of training AI models on copyrighted data, and the people building AI systems are not waiting for it. Models trained on books, articles, code repos

Why your AI team needs philosophers, not just engineers
Why your AI team needs philosophers, not just engineers
25 May, 2026 | 05 Mins read

A hiring manager at a large tech company told me they had four hundred engineers working on their AI platform and zero people with training in philosophy, ethics, or the social sciences. When I asked

The great model commoditization: what happens when everyone has GPT-5
The great model commoditization: what happens when everyone has GPT-5
30 May, 2026 | 03 Mins read

OpenAI shipped GPT-5. Anthropic shipped Claude 4. Google shipped Gemini Ultra 2. Within six weeks of each other, the three leading model providers released frontier models that are, by most benchmarks

The paradox of AI automation: more tools, less productivity?
The paradox of AI automation: more tools, less productivity?
01 Jun, 2026 | 05 Mins read

A data engineering team I worked with had adopted six AI-powered tools in twelve months. An automated code reviewer, a data quality scanner, a pipeline orchestrator with intelligent retry, a natural l

Career paths in AI data engineering: 2026 edition
Career paths in AI data engineering: 2026 edition
08 Jun, 2026 | 04 Mins read

Three years ago, "data engineer" was a coherent job title. You built pipelines, managed infrastructure, and moved data from where it was to where it needed to be. The role required SQL, Python, and a

Books every AI leader should read this year
Books every AI leader should read this year
10 Jun, 2026 | 04 Mins read

Most reading lists for AI leaders are assembled by people who sell AI. The lists are full of books about machine learning techniques, deep learning architectures, and the latest framework documentatio

The invisible infrastructure: why data plumbing matters more than models
The invisible infrastructure: why data plumbing matters more than models
15 Jun, 2026 | 05 Mins read

A Fortune 500 company hired a team of twelve machine learning engineers and tasked them with building a predictive maintenance system for their manufacturing floor. The ML team spent four months evalu

Why 'AI engineer' is the fastest-growing job title (and what it means)
Why 'AI engineer' is the fastest-growing job title (and what it means)
17 Jun, 2026 | 04 Mins read

LinkedIn's latest workforce report shows "AI engineer" as the fastest-growing job title for the third consecutive quarter. Job postings containing the title increased 280% year-over-year. The growth r

Open-source sustainability: who pays for the code everyone uses?
Open-source sustainability: who pays for the code everyone uses?
22 Jun, 2026 | 05 Mins read

A critical open-source library used by thousands of companies, including several Fortune 500 firms, is maintained by one person in their spare time. This is not a hypothetical. It is a description of

Why I stopped chasing the latest AI framework
Why I stopped chasing the latest AI framework
29 Jun, 2026 | 04 Mins read

In 2023, I rewrote a data pipeline three times because the framework landscape kept shifting. First it was built on LangChain. Then the team wanted to switch to LlamaIndex because it handled retrieval

The loneliness of being the only data engineer on the team
The loneliness of being the only data engineer on the team
06 Jul, 2026 | 05 Mins read

There is a version of the data engineering career that nobody warns you about. It is not the startup grind or the big-company bureaucracy. It is being the only data engineer on a team of people who do

DataOps: Creating Culture and Processes for Reliable Data
DataOps: Creating Culture and Processes for Reliable Data
01 Jun, 2024 | 03 Mins read

# DataOps: Creating Culture and Processes for Reliable Data Data quality issues cascade downstream. DataOps applies DevOps principles to data workflows: automation, collaboration, and continuous impr

2025 Year-in-Review & 2026 Trends in Data & AI Architecture
2025 Year-in-Review & 2026 Trends in Data & AI Architecture
19 Dec, 2025 | 03 Mins read

2025 was the year AI moved from experimentation to industrialization. While 2024 saw the explosion of generative AI capabilities, 2025 was about making those capabilities production-ready, cost-effect

The AI Operating System: Why Companies Need an AI Foundation Layer
The AI Operating System: Why Companies Need an AI Foundation Layer
05 Jan, 2026 | 16 Mins read

A financial services firm spent eight months building an AI-powered document analysis system. When it came time to deploy, they discovered their retrieval system had no governance layer, their agent h

AI Enablement Programs: Building Organizational Capability, Not Just Technology
AI Enablement Programs: Building Organizational Capability, Not Just Technology
19 Mar, 2026 | 11 Mins read

A technology company built an impressive AI platform. They had GPU clusters, fine-tuning pipelines, evaluation frameworks, and a growing model registry. They opened access to any team that wanted to u