Categories
Design strategy

Design Debt vs. Tech Debt: which one will kill your product first?

You’ve heard or technical debt. You probably even track it. But there’s another kind of debt quietly building in your product – one that won’t crash your system, but will likely sink your growth.

In the rush to deliver new products and features, development teams are often forced to compromise on the quality of their code, causing tech debt. These compromises are usually visible, measurable, and somebody will make a ticket to eventually address it.

Design debt is different. It’s more insidious. It doesn’t throw errors, nor crash a system. It quietly accumulates, affecting usability, accessibility, and consistency, until users start to walk away.

The worst part is you might not even notice it’s happening.

What is Design Debt?

Design debt is what builds up when short-term decisions chip away at the overall user experience. That might look like:

  • User flows that assume prior knowledge or training
  • Inconsistent interaction patterns across similar features
  • Navigation that’s grown organically without a plan
  • Functionality added to cover rare use cases that ends up confusing most users
  • Temporary workarounds that somehow became permanent

Where It Comes From

Design debt builds up when:

  • UX isn’t in the room when roadmaps are shaped
  • Delivery pressures squeeze out time for design iteration
  • Product teams are focused on “can we ship it?” rather than “should it work like this?”
  • There’s no centralised design system – or it’s ignored
  • No one’s checking for coherence across journeys
  • No time is allocated to fix broken user journeys

Unlike tech debt, design debt is rarely logged. And because it doesn’t get flagged as a bug, it often doesn’t get prioritised at all.

Tech Debt vs. Design Debt: What’s the Cost?

Debt TypeVisibilitySymptomsWho Notices FirstLong-Term Risk
Tech DebtHigh (errors, bugs)Slower development, instabilityDevelopersHarder to change, slows delivery
Design DebtLow (UX issues)Confusion, support tickets, churn, extensive training requirementsUsers & CS teamsHarder to use, limits adoption & usage

Tech debt frustrates your developers.

Design debt frustrates your customers.

Both cost time and money. But only one is regularly tracked.

The Success Illusion: When Design Debt Hides Behind Technical Users

Some products do well even with clunky UX – particularly those aimed at highly technical users. These users expect complexity. They’re used to reading documentation, attending training, and navigating awkward tools, perhaps even comfortable working in code and formulas.

If those users stick with your product, it can look like success.

But here’s where it gets dangerous: you start believing those users are your product’s only market, and one you can rely on indefinitely. Unless that really is your long-term strategic position (and you’d better be sure it is), you’re designing for a subset while locking out everyone else. Over time, you shape decisions around what those users tolerate – rather than what a broader market would need.

That becomes a self-reinforcing loop:

Technical product → Technical users → UX gets deprioritised → More technical complexity → Fewer non-technical users

Design debt becomes structural. And when you finally want to expand into less technical markets, you realise the product is too complex to fix in small iterations. You’ve boxed yourself in to options that are either wholesale changes (read: expensive rebuilds), or, more likely a complex iterative improvement projects complete with disruptive migration paths for existing users. Either way, you’re no longer solving for usability – you’re untangling yeas of compounded complexity just to unlock growth you could have had years ago.

What You Can Do About It (Even If Users Aren’t Complaining)

Not all design debt needs fixing now. But pretending it isn’t there is a mistake. Here’s how to make progress:

  • Audit user journeys regularly. Don’t just check that things work—check who can make them work.
    • I recommend benchmarking your product’s UX quality using, among other metrics, the System Usability Score.
  • Include different user types in discovery. Ideally include those who didn’t make it through onboarding to avoid survivorship bias.
  • Block time for usability improvements. Treat them like you would any other technical work.
  • Challenge internal assumptions. Who are we really building for—and who have we left behind?

Final Thought: Design Debt Isn’t Cosmetic. It’s Strategic.

If your product only works for users who’ve been trained, onboarded, and are deeply motivated to figure it out, then yes – it’s a “usable” product. But only for those motivated, technical, expert users. And that means it’s not scalable, and it’s not reaching its full potential.

Ignoring design debt doesn’t just hurt usability – it narrows your market. Over time, that quiet erosion becomes a structural limitation. And fixing it later will be neither cheap nor easy.

So which one will kill your product first – tech debt or design debt? In most cases, it’s design debt. Tech debt slows your teams down. Design debt drives your users away. You can limp along with messy code for a while, but if your product becomes too frustrating to use, or if your product’s learning curve becomes too steep, your customers won’t want your product. And a business with excellent code but no customers is a dead business.

Categories
Design strategy

How to update a complex legacy application.

Rarely have I been blessed with a truly ‘greenfield’ project—a product so new that the only conventions to adhere to are those of the target users and good product design principles. More often, my job involves improving established systems with established user bases, who have invested time and effort into working with a system and its… quirks. How do you make changes to a product—sometimes significant changes—without frustrating your existing user base?

Option I: Softly softly

“The man who moves a mountain begins by carrying away small stones.” —Confucius

There’s a lovely analogy I once heard to describe making small, incremental, but meaningful changes to an existing system. Imagine you’re standing in your kitchen. You’ve been using it for months now and have learnt where everything is. Now imagine I’ve come in overnight, reorganised everything to the most logical, ergonomic locations, and removed the least-used equipment. Any new person that comes into the kitchen will stand a much better chance of guessing where to find what they need, but you need to spend time and effort re-learning everything you knew about how to use that kitchen—you’d be frustrated even if the design of the kitchen was demonstrably better. The same is true for software redesigns. Whether it’s a pre-formed mental model not fitting new data structures, or muscle memory causing users to click on the wrong option, any change can cause pain to existing users.

The solution is small, well-labelled changes made on a regular basis. To continue our analogy, rearrange the spice rack to make it alphabetical, and tell the users you’ve done so. Or with UI design, re-order the contents of a page to one that your research has shown works better for your users, and inform your legacy users of this change the next time they visit. Through regular small changes, you can quickly redesign an entire system and bring your existing client base along with you.

Option II: Launch, Coexist, Phase-out, Retire

“Change is the law of life. And those who look only to the past or present are certain to miss the future.” — John F. Kennedy

This option involves building a completely separate version of your product that will run alongside your existing offering. This fantastic new version of your product will be launched with the understanding that existing users can, for a time, continue to use the older version, but that all the fantastic new features will only be available in the new version. The two versions coexist for a time, before the old is phased out and any laggards remaining on the old system must migrate to the new. This was Microsoft’s approach with moving users from Internet Explorer to Edge: Launch; Coexist; Phase-out; and Retire.

Which option to use? It depends.

Which option I’ve opted for has depended on a number of factors such as the scale of the product and the resources available to build an entirely new offering alongside an existing one. But in the end, these have always proven to be the best two options.