Tied Inc.
Technical debt Technical literacy Investment decisions Management Engineering

What technical debt actually is: A redefinition for investors and operators

Tied Inc. 日本語で読む

Technical debt is not “old code that engineers grumble about.” It is interest-bearing borrowing taken on by prioritizing today’s velocity over paying for tomorrow’s development cost up front. Getting this definition right is the starting point for correctly evaluating technical risk in investment, acquisition, and operational decisions.

When an engineer tells you “we have technical debt,” the question for an operator or investor is not “do we have it or not?” It is “what kind of debt, at what interest rate, in what amount?”

What the metaphor originally meant

The phrase was first used by Ward Cunningham, the inventor of WikiWiki. In 1992 he likened design compromises in software to financial debt:

Shipping first-time code is like going into debt. If you don’t pay it back later, the interest keeps compounding.

The crucial point is that Cunningham did not call this a bad thing. Debt is also something you take on strategically. It is rational for a startup to favor speed to market over design polish in order to test product-market fit. The problem lies in the compounding interest that accumulates when that debt is left unmanaged and unmonitored.

Mapped onto financial debt, the picture looks like this:

Financial debtTechnical debt
PrincipalThe compromised piece of design or implementation itself
InterestThe extra cost of continuing to develop while carrying that compromise
RepaymentRefactoring; revisiting the design
DefaultDevelopment velocity collapses to near zero; system goes down
Interest rateCode complexity; density of dependencies

Through this lens, “we have technical debt” is the same kind of statement as “we have a loan.” The substance of the question is the size, the rate, and the repayment plan.

The four quadrants of technical debt: Deliberate vs. inadvertent, prudent vs. reckless

A widely cited taxonomy in software engineering is Martin Fowler’s four quadrants. The two axes are “deliberate vs. inadvertent” and “prudent vs. reckless.”

Prudent Reckless Deliberate Inadvertent Prudent and deliberate "Ship the quick fix now; we will fix it properly later." -> Strategically acceptable debt Prudent and inadvertent "Now we would design it differently; we did not know then." -> Acceptable as the cost of learning Reckless and deliberate "No time to think about design. Just make it run." -> Most dangerous; high default risk Reckless and inadvertent "Layered architecture? What's that?" -> Capability problem; assess the org
Figure 1: The four quadrants of technical debt (after Fowler, 2009)

The quadrant investors and operators should worry about most is the lower-left “reckless and deliberate.” This is debt incurred by completely abandoning design under time pressure, and it carries the highest interest rate. The lower-right “reckless and inadvertent” is a problem with the team’s technical capability itself, and cannot be paid down without hiring or training.

By the same logic, debt in the upper-left (prudent and deliberate) can be a rational management decision. Intentional trade-offs in the early phase of a startup are no more problematic than financial leverage, as long as a repayment plan exists.

How it bleeds into the business: Four mechanisms

When technical debt accumulates, how does it actually affect the business? There are four main paths.

1. Slower development

This is the most visible effect. Every time a new feature is added to existing code, there is a cost to decoding the tangled design. The cascade of “we fixed feature A and feature B broke” becomes more frequent. A feature that took a day to implement on the early codebase takes a week after the debt accumulates — that is the interest, made tangible.

2. Higher incident and security risk

Old libraries, complex dependencies, and untested code are breeding grounds for bugs and vulnerabilities. In security in particular, there are cases where neglected technical debt becomes the entry point for a data breach or unauthorized access. Incident response cost is often several to several dozen times the cost of preventive refactoring.

3. Engineer attrition

Strong engineers dislike low-quality codebases. When “I don’t want to touch that code” becomes the prevailing sentiment, an adverse-selection cycle starts: the most capable engineers leave first. The ones who remain tend to be either people who do not perceive the underlying problem, or people who are not marketable enough to leave — and the debt accelerates further.

4. Lost opportunity

Speed of response to market opportunities drops. If a competitor ships a feature in two weeks and it takes you three months, that is a competitive disadvantage at the business level. Technical debt is not just “an engineering team problem”; it is a problem about the company’s strategic responsiveness in the market, and it lands in management decisions.

How to tell “good debt” from “bad debt”

As with financial debt, not all technical debt is bad. The following questions help separate them.

Is it acknowledged?

If the management team has an accurate picture of how much debt they are carrying and a roadmap to repay it, that is managed debt. If the answer is “we know it exists but cannot quantify it” or “we asked the CTO and got nothing concrete,” the debt is not visible — and what is invisible is almost always worse than what people admit to.

Is there a repayment plan?

If the debt was an intentional trade-off, there should be a plan that says “we will rebuild this part during phase X.” A useful check is whether the team runs scheduled refactoring sprints after specific feature pushes complete.

Is the interest rate (complexity) under control?

The difficulty of repayment depends on whether design complexity is localized or has spread system-wide. If module dependencies are clean, you can intervene surgically in one area. If dependencies have become spaghetti, every fix in one place breaks something elsewhere, and repayment cost snowballs.

Practical questions for investment and M&A

Once you understand the concept of technical debt, the next question is how to actually use it in investment or acquisition decisions. The following starter questions are useful:

  1. Ask engineers, “Name three pieces of code you would fix right now.” Whether they can answer reveals the level of visibility. If the answer is “nothing comes to mind,” either there is no awareness, or the environment does not let them speak.
  2. Ask what share of the past six months was spent on refactoring. This indicates whether the company invests in technical health alongside feature work.
  3. Ask for multiple estimates of “how long would it take to add this feature.” If similarly sized features come back with wildly different estimates, the codebase has low predictability.

These are questions a non-engineer can ask. Often the delivery of the answers tells you more about the maturity of the technical organization than the answers themselves.

In summary: Ask not “is there debt?” but “in what state is it?”

There is no engineering organization without technical debt. The right question is not “is there technical debt?” but “is the debt acknowledged, is the interest rate (complexity) under control, and is there a repayment plan?”

  • Debt taken prudently and deliberately -> a rational management trade-off
  • Debt accumulated recklessly and inadvertently -> a capability and organizational problem; needs hiring and training to address
  • Debt that is invisible -> first step is just sizing it

Identifying which quadrant a target’s technical organization mostly lives in is one of the cores of technical DD.

Concrete evaluation frameworks for startup technical DD are detailed in TiedPro for investors. For evaluation of engineering organizations or post-investment value-up support, please reach us via contact.


FAQ

Q. What is the cost of paying down technical debt?

The cost of repayment varies sharply with the type and scale of the debt. For localized, deliberate debt, refactoring with a few weeks to a few months of engineering capacity is often enough. When spaghetti dependencies have spread system-wide, partial improvements become difficult and a full architectural rebuild can be required. As a benchmark, healthy engineering organizations dedicate roughly 15–20% of engineering capacity to refactoring and technical-health maintenance.

Q. How is technical debt different from a “bug”?

A bug is “the system not behaving as expected.” Technical debt is “the system behaves correctly, but a design issue is raising the cost of future development.” Bugs are problems requiring immediate fixes; technical debt is a cost that compounds over the medium-to-long term. Distinguishing them by time horizon is useful.

Q. Won’t startups become paralyzed if they worry about technical debt too much?

Yes — over-perfectionism is counterproductive. In early phases, deliberate trade-offs of “accept today’s incompleteness, fix it later” are often necessary. The key is “do not accumulate it without knowing.” Debt taken consciously is manageable; debt that piles up without anyone noticing loses its repayment window.

Back to all posts
#Technical debt #Technical literacy #Investment decisions #Management #Engineering
Tied Inc.

Tied Inc.

Tech-leadership advisory for investors and operating companies. We support technical due diligence, value-up engineering, and strategic technology decisions across the investment lifecycle.

Get in touch →