Call Us: +1-888-227-1645

What is Technical Debt, and How to Deal with it

Eric Meyer

3 min read

If you’re the owner of a large website or web application you may have heard your developers talking about something called technical debt. It’s frequently used in conversations about development practice, but many people don’t quite understand what it is. So, what exactly is technical debt, and how do we deal with it?

How is Technical Debt Defined?

Put succinctly, technical debt is the amount of work that needs to be done to fix code that has been written quickly, instead of written well.

You can think of it in terms of borrowing money. If you take out a loan, you can do things that you may have been unable to do without that cash flow. But eventually, you’re going to need to repay that loan, with accumulated interest. It’s the same with software development.

If we, as developers, rush a product out the door, the codebase is going to have inconsistencies and deficiencies. Structures may be brittle, race conditions may be present, and while the software may function, you can have more bugs than you intended.

The process of repairing these problems and cleaning up the codebase is the interest payment on that loan. You’re not actually paying off the initial loan amount, only the interest that’s accruing. You still have to pay off the actual loan. It’s the penalty you’re paying to rush the items out the door. That’s the technical debt of the project.

Types of Technical Debt

So far, we’ve identified the type of technical debt that occurs when we are rushing to get a project going. This can be intentional or unintentional depending on the experience level of the developers. We call this “active” debt. If we dig a little deeper, though, we can identify another type of technical debt that can creep into a project. This is when code becomes outdated, or fails to meet evolving business requirements. We call this type of debt “passive.” It exists in almost every software package out there.

How do We Address Existing Technical Debt?

It’s important to look at each software development project as a dynamic process. Like a garden, it needs to be tended and updated on a constant basis. The general trajectory of the process needs to be towards the creation of more stable and flexible software structures.

In the enterprise, this means creating a budget to maintain and update existing applications on a month-to-month basis across the board. Have your senior developers identify the most egregious issues in the codebase, and prioritize fixes for these items. Static code analysis tools can be a great help in identifying problematic segments of code.

Preventing Technical Debt

Development teams need to adopt strategies for dealing with technical debt. At Curious Minds we use a streamlined, efficient approach to mitigate and prevent technical debt.

Keeping Ahead of Technical Debt

Curious Minds has over 17 years of experience developing and maintaining enterprise applications and marketing sites. We understand how to help organizations manage and mitigate technical debt in their development efforts. Contact us today, and we’ll show you what we can do for your development team.

Let's build something amazing together

Give us a ring and let us know how we can help you reach your goals. Or if you'd like, start a chat. We're usually available 9-5 EST. We try to respond to every inquiry within one business day.

Phone number

Technologies and services we work with:

Laravel Laravel
WordPress WordPress
React ReactJS
EmberJS EmberJS
woocommerce WooCommerce
next.js NextJS
gatsby Gatsby
Shopify Shopify
VueJs VueJS
contentful Contentful
next.js JAMStack
gatsby Laravel Jigsaw
WPEngine WP Engine
Laravel Livewire Laravel Livewire
Netlify Netlify