Types of Tech Debt

Alec Cargin

4 min read

Jul 26, 2021

Types of Tech Debt

There are endless ways for tech debt to escape from its gloomy abyss of jumbled code and enter into your project. So it’s not surprising that there are potentially even more ways that companies and individuals refer to, categorize, and label tech debt. And sorting through these endless definitions and analogies trying to get a grasp over what you or your team may be dealing with, and potentially solve it, can get pretty grueling. So we’re here to make that process simpler. 

Breaking Debt Down by Awareness 

What’s the most crucial step in beginning to solve any problem you may face? Maybe you believe it’s learning from an expert. Better yet, you could argue that it’s necessary to jot down all the relevant information. Or you could simply break the issue down into smaller parts, unveiling the root of the issue. These all seem like pretty reasonable approaches, right? Not so fast. 

The first critical step in handling any problem is to recognize the existence of the problem itself, and that will begin to help you understand and solve for the 4 main types of tech debt. 

  • Intentional (or Deliberate) Tech Debt
  • Unintentional Tech Debt
  • Happened-upon Tech Debt
  • Bit Rot

The Good, the Bad, and the Ugly

It’s no different when it comes to solving your tech debt. The first necessary step is identifying your debts, and likewise, the interest to be paid. When it comes to identifying tech debt, we begin with two broad categories: intentional and unintentional. 

Intentional (or Deliberate) Tech Debt 

Up to this point, tech debt has established itself as the problem child within the world of software development. Well it seems tech debt may actually have another trick up its sleeve, because wouldn’t you know, it’s got a good side too. Enter intentional tech debt. 

Often referred to as deliberate debt, intentional debt is incurred based on considered decisions. Typically, this debt is accrued with the understanding that it will allow your app to get to market faster. The important thing to remember is that it’s vital to monitor the debt as it collects and to keep in mind the potential consequences.  

Here are a few important considerations for your team prior to deciding to take on debt.

  • What potential impacts on reliability are there going to be by reaching the market faster? Will this hinder the user experience of the product?
  • Will development be slowed in the future because of this debt? 
  • Will your team have the bandwidth to deal with existing debt in the future?
  • Are all stakeholders aware and okay with the decision to accrue debt?
  • Do you have a plan in place to deliberately track debt?

 Unintentional Tech Debt

Now if there’s intentional debt, then logically there must also be unintentional debt. This debt is not nearly as friendly and often much less in your control. Unintentional tech debt has a few notable forms. 

 Happened-upon Tech Debt 

Happened-upon tech debt is essentially intentional debt’s evil twin. This debt was created in the past but unveils itself in the present. Happened-upon debt is unknown to the development team and usually exists under the umbrella of a few circumstances. 

Maybe you’ve been hired to improve an app, taken on the code of a developer who has left your team, or you’ve brought in outsourced code from a third party. In any of the cases, happened-upon tech debt can then arise in the form of bugs as you try to create features over the suboptimal codebase you inherited or as runtime errors when you attempt to merge your code into these codebases. This debt is dangerous because you can’t account for it while determining the scope of your project. 

You can limit happened-upon debt by writing or merging with repeatable, simple, and readable code. It’s also good practice to include code audits during your discovery process to reduce the likelihood of happened-upon tech debt. Similarly, keep design thinking at the forefront of your development process.  

 Bit By Bit, Little by Little (Bit Rot)

Bit Rot tech debt refers to the progressive devolution of software into extremely complex and hard to manage systems. Through many small changes and lots of hands working on the same code independently, bit rot tech debt can internally hinder the usability of code altogether. Combat bit rot tech debt with frequent refactoring and a deep level of understanding regarding design by all parties prior to coding.  

A cousin to bit rot is lack of skill. Tying into your dev team’s level of understanding, lack of skill tech debt is a reckless and inadvertent form of debt attributed to poor logic and coding practices. 

Let Your Debt Be a Thing of The Past 

Your team’s next steps are crucial. You know tech debt is there, you know its potential, and maybe you even have a plan for handling it in the future. But maybe not. Maybe now you’re concerned if your team will be able to pay off the interest on your tech debt. At Big Nerd Ranch, we can work with you in whatever stage of development necessary to clear you of all debts, technical and design alike. Whether it’s bringing your idea to life through our immense digital product development process, leveling up your team’s skills through corporate training, or working alongside our embedded experts, we’ll make sure tech debt is out of the picture every step of the way. Make sure to reach out to let the Nerds help steer you towards a debt-free path.

Josh Justice

Reviewer Big Nerd Ranch

Josh Justice has worked as a developer since 2004 across backend, frontend, and native mobile platforms. Josh values creating maintainable systems via testing, refactoring, and evolutionary design, and mentoring others to do the same. He currently serves as the Web Platform Lead at Big Nerd Ranch.

Speak with a Nerd

Schedule a call today! Our team of Nerds are ready to help

Let's Talk

Related Posts

We are ready to discuss your needs.

Not applicable? Click here to schedule a call.

Stay in Touch WITH Big Nerd Ranch News