Skip to main content
Tech Equity: Stop Paying for the Past and Start Building the Future
11:49

Tech Equity: Stop Paying for the Past and Start Building the Future

Eli Landon
by Eli Landon
Mar 19, 2025 12:05:11 PM

Software engineering has a branding problem. We celebrate innovation yet vilify the very foundation it is built on—past technical decisions. Instead of treating them as stepping stones for future breakthroughs, we label them as tech debt and burden teams with the guilt of past choices.

But what if we stopped seeing technical debt as a liability and started recognizing it as tech equity?

Every line of code, every system choice, and every shortcut taken in the name of speed is an investment, one that fuels growth and enables future agility. Yet too often, companies become obsessed with paying it down, stalling progress in the process. They put innovation on hold, reject new ideas out of fear, and chase an illusion of engineering perfection that never arrives.

This mindset does not just slow down technology. It burns out the people behind it. Teams spend months cleaning up old code instead of building something new. Engineers see their work dismissed as technical debt rather than appreciated as a foundation for progress. Leaders hesitate to greenlight bold ideas because someone warns them it will create more debt. The weight of the past becomes heavier than the excitement of the future, leaving teams frustrated and disengaged.

After two decades in tech, I have seen this fear paralyze organizations. I have watched brilliant engineers lose their drive because they spent more collecting debt than creating. I have seen promising projects die before they started because of an obsession with perfection. I have watched companies struggle to attract top talent because they focus more on fixing the past than building what is next.

Technical debt was never meant to be a shackle. It was meant to be a strategic tool. It is time we stop fearing the past and start leveraging it to build the future not just for the technology but for the people who create it.

 

Where the Term Came From and Where It Went Wrong

Ward Cunningham introduced technical debt in 1992 at the OOPSLA conference. It was not a formal paper. It was a metaphor. He was trying to explain that releasing code creates an obligation. Just like taking on financial debt, you gain speed at the cost of future maintenance. If you manage it well, that debt helps you grow. If you let it pile up unchecked, it slows you down.

Cunningham’s idea was about pragmatic engineering. It was a strategy for balancing speed and sustainability, not an excuse to keep fixing yesterday’s code instead of building tomorrow’s products.

Yet that is how many teams use it today.

  • To block ideas – “That would create too much tech debt.”
  • To delay releases – “We have too much tech debt in this code.”
  • To avoid responsibility – “We do not have resources to fix the tech debt.”

At some point, tech debt stopped being a lever for speed and started being a reason not to move forward.

 

Why We Are More Cautious Now Than Ever

I remember a time around when the tech debt term came into existence when we rolled out code at midnight because that was the only way to avoid user downtime. We moved code around on 1.44MB floppy disks. When the Iomega Zip Drive came out with 100MB of storage, it felt like the future. That was, of course, until you got the Click of Death and lost everything.

Back then, we had some automation. We used Perl scripts to trigger builds in Concurrent Versions System (CVS). Open-source software came in the mail on CD-ROMs. We emailed patches to colleagues using Lotus Notes. We wrote code on physical servers with paper runbooks.

We shipped software even when it was painful.

Now everything is easier. We have CI/CD pipelines that automate testing, Git platforms with built-in collaboration, and Docker containers that spin up entire environments in minutes. We can deploy to production in hours when the same process used to take weeks. We have immutable cloud infrastructure that prevents a bad deployment from taking everything down.

Yet with all these advancements, we hesitate more than ever.

The problem is not that technical debt is worse than before. The problem is that companies are more afraid of making the wrong decision than missing an opportunity to move forward.

Computing has always been about trade-offs, yet modern teams seem paralyzed by abundance. With dozens of languages, frameworks, and architectures to choose from, engineers spend more time debating the perfect stack than actually building. Each person has a favorite tool, and if their choice is not used, they declare the alternative to be tech debt before a single line of code is written.

Instead of embracing imperfection as part of progress, teams now chase an unattainable ideal. They hesitate, refactor, and redesign while others simply build. But what if we stopped treating technical debt as a problem to eliminate and started seeing it as an investment in growth?

 

Why Technical Debt Should Be an Investment, Not a Crisis

The best teams do not fear technical debt. They manage it.

Think about buying a house. You do not go into debt when considering the purchase. You take on debt after buying it because that is how you gain ownership. You can fear the mortgage but without that debt you won’t have the house. Without living in the house you won’t know what to fix.

Software works the same way.

Shipping software is progress. You will always have things to fix later, but you cannot fix what you have not shipped. You need real users, real feedback, and real data to know what actually matters.

If 90 percent of user complaints are about a reporting feature, that is where you should focus. If only 5 percent of users ever touch the settings page, there is no point in wasting time refactoring it.

You have to go into debt to know what to fix.

 

How to Manage Tech Debt Without Slowing Down

  1. Classify Tech Debt the Right Way

Not all debt is bad, but not all complaints about tech debt are real problems. The best teams separate real debt from personal opinion by categorizing it into three groups:

  • Good Debt – Intentional trade-offs, such as taking shortcuts to ship an MVP or validate a feature.
  • Bad Debt – Poorly written, unmaintainable code that actively slows the team down.
  • Legacy Debt – Code that was well-designed at the time but no longer fits business needs.

Before rushing to fix something, ask: Is this truly slowing us down, or do I just dislike it? If debt is good or necessary, leave it alone. If it actively creates friction, then it is worth addressing.

  1. Measure Debt in Terms of Speed, Not Purity

Refactoring should be driven by business impact, not personal preference or the pursuit of cleaner code. Instead of asking, "Do I like this code?" ask:

  • Does it slow development?
  • Does it harm user experience?
  • Does it cost more to maintain than to replace?

If the answer is no, then it is not debt—it is just an engineer’s discomfort with imperfection. Fix what matters and stop chasing unnecessary rewrites.

  1. Fix Debt as You Go, Not as a Separate Project

Too many companies treat tech debt like a crisis that requires shutting everything down to fix. That is the wrong approach. Great teams prioritize refactoring inside of normal feature work.

  • Fix it when you touch it.
  • Improve it incrementally.
  • Never block innovation for a problem that users do not actually care about.

Refactoring is a maintenance task, not a milestone.

  1. Accept That Some Debt Will Never Get Paid Off

There will always be old code that never gets rewritten. If it does not break, slow development, or impact users, then it is not debt worth paying off. Not all debt needs to be cleared. Some can simply be managed.

The goal is not perfection. The goal is momentum.

 

The Psychology of Tech Debt and How to Push Past It

The way teams talk about tech debt shapes the way they act on it. If a company frames it as an insurmountable crisis, people will avoid risk, delay action, and become trapped in a cycle of fear-based decision-making. If leaders treat it as a strategic investment, teams will move faster, focus on impact, and innovate with confidence.

  1. Fear of Failure Is Stronger Than the Desire to Win

People would rather avoid blame than take a calculated risk.

  • No one wants to be the one who approved a launch that led to performance issues.
  • No one wants to be responsible for introducing new bugs.
  • No one wants to get called out in a postmortem meeting.

The result? Teams over-index on caution and stall on decisions that could actually move the company forward.

Great companies do not win by playing defense. They embrace risk intelligently.

  1. Stop Treating Tech Debt as an Excuse to Avoid Hard Work

In many companies, tech debt is not just a technical problem—it is a political tool.

  • Engineers use it to shut down ideas they do not like.
  • Managers use it to delay work they are not ready to prioritize.
  • Executives use it to justify budget requests or hiring needs.

The best leaders push past this kind of bureaucratic thinking and force teams to focus on reality.

  1. Prioritize Creating Over Optimizing

Many teams spend too much time perfecting the past instead of building the future.

The best way to fix tech debt is to build new things that make the old debt irrelevant.

Building a Culture That Embraces Tech Equity

Great companies do not let tech debt become a taboo subject. They create an environment where engineers, managers, and executives can have honest conversations about trade-offs without fear of blame.

To build that culture:

  • Encourage transparency – Teams should feel comfortable highlighting areas of friction without worrying that admitting debt means they have failed.
  • Make risk a shared responsibility – Instead of pointing fingers, teams should work together to find balanced solutions that align with business goals. Customer impacting code does not belong to one person, it impacts the entire company.
  • Reward smart trade-offs – Engineers should not feel pressure to write perfect code at the cost of speed and innovation. Leaders should recognize when teams make intentional, thoughtful debt decisions to move faster.
  • Foster a growth mindset – Instead of fixating on past mistakes, teams should be empowered to learn, iterate, and improve as they build.

A company’s attitude toward tech debt is a direct reflection of its risk tolerance and leadership style. During an interview Q&A ask how much tech debt the company has. The response is usually enlightening to the company’s culture. When teams normalize open discussions about trade-offs, they make better long-term decisions without paralyzing innovation.

 

Final Thought: Tech Debt Is Not the Problem, Overthinking It Is

The real issue is not tech debt. It is the way companies use it as an excuse to avoid risk.

Some of the best products ever built were full of shortcuts, hacks, and compromises. Tesla’s early software was riddled with hardcoded values, but it shipped. Slack started as a game engine before pivoting, carrying plenty of technical baggage, but it shipped. The first iPod firmware had plenty of technical debt, but it shipped. The first iPhone did not have an App Store, but it shipped. Great products do not emerge from perfect code. They emerge from a relentless focus on progress over perfection.

Great companies move fast, take smart risks, and focus on the right problems. They have more “Tech Equity” than debt. If you want to build something great, stop waiting for the code to be perfect. Ship something. Iterate. Fix what matters. Move forward.