Up to date
Published
4 min read

Trevor I. Lasn

Staff Software Engineer, Engineering Manager

When Should You Actually Worry About Tech Debt?

Technical debt isn't the monster under your bed, but it can become one if ignored too long.

Technical debt is like that pile of laundry in the corner of your room. Yeah, it’s annoying, but it’s not going to kill you… unless you leave it there for too long.

So, what’s the signal to start worrying? Here’s what I look for:

Feature Development Slows Down

This is a big one. If your team is spending more time working around messy code than actually building new features, it’s a sign that technical debt is holding you back.

Let’s say you’re adding a new feature to a product, but it takes twice as long because you’re untangling a mess of spaghetti code. That’s a bad sign. At this point, the debt is costing you more time than it saved when you first cut corners.

// This function has grown over time and is hard to maintain
function processOrder(order) {
if (order.type === "regular") {
processRegularOrder(order);
} else if (order.type === "rush") {
applyRushFees(order);
processRegularOrder(order);
} else {
throw new Error("Unknown order type");
}
// Update inventory, process payment, send confirmation, etc.
}

At first, this function worked fine. But as the project grew, it got more complex. Now, adding a new order type requires untangling a bunch of logic. It’s a sign that refactoring is due.

User-Facing Bugs Start Appearing

If your technical debt starts creeping into the user experience, that’s a serious problem. When your code is so brittle that it introduces bugs users notice, it’s time to take a step back.

I’ve worked on teams where we kept pushing new features without addressing the underlying technical debt, and eventually, users started seeing the cracks. Features would break for no apparent reason, or we’d roll out a new release only to have it introduce new bugs.

In this case, your technical debt isn’t just a dev problem anymore. It’s a business problem.

Scaling Issues

You might think, “Hey, we’ll deal with the debt when we’re bigger.” But scaling up is exactly when technical debt can bite you the hardest.

Imagine you’ve got 100 users. Everything works fine. Then you hit 10,000 users, and suddenly, your system can’t handle it because you made a ton of quick fixes along the way.

It’s not uncommon for performance issues to show up when your user base scales. That’s when you realize those quick, hacky solutions you put in place weren’t built to handle real growth.

Here’s an example of bad scaling logic:

// Example of technical debt causing scaling issues
function getAllUsers() {
const users = db.query("SELECT * FROM users");
// Fetches all users, which is fine with 100 but a disaster with 10,000+
return users;
}

With 100 users, this might work okay. But as soon as your database grows, this becomes a nightmare. Refactoring to a paginated approach early on would have saved you time and headaches.

New Devs Can’t Get Up to Speed

Another sign you need to worry about technical debt: when new devs join the team and spend weeks just trying to understand the codebase. If your code is so convoluted that onboarding takes forever, it’s a red flag.

If new devs can’t figure out how things work because the code is filled with hacks and workarounds, you’re paying more than just time. You’re losing productivity and morale.

When It Can Be Ignored (For Now)

Now, I’m not saying you should drop everything and fix every little thing that’s wrong with your code. In fact, sometimes you can ignore technical debt for a while. Here are a few cases when it’s okay:

  • You’re in early-stage development. When you’re building a product from scratch, speed is more important than perfection. Get it out there, get feedback, and then worry about cleaning up later. Just make sure you address the debt early enough.

  • You need to meet a critical deadline. If you’re launching a feature that’s going to make or break the business, ship the feature. You can fix the debt once the deadline’s behind you.

  • The debt is isolated. If you have one small section of your codebase that’s a bit hacky but isn’t affecting anything else, you can probably let it sit for a bit. Just don’t forget it’s there.

Pay technical debt down when it starts slowing you down, causing bugs, or keeping your team from being productive. But don’t panic about every little shortcut. Sometimes, shipping now and cleaning up later is the right move.


Found this article helpful? You might enjoy my free newsletter. I share dev tips and insights to help you grow your coding skills and advance your tech career.

Interested in supporting this blog in exchange for a shoutout? Get in touch.


Liked this post?

Check out these related articles that might be useful for you. They cover similar topics and provide additional insights.

Reflections
4 min read

Weeks of Coding Can Save You Hours of Planning

Weeks of coding can save you hours of planning. It’s one of those sayings that’s been around forever, and for good reason—it’s a warning that still holds up today.

Sep 21, 2024
Read article
Reflections
4 min read

Users Can Be Fired

Letting go of difficult or harmful users can be the key to maintaining the health and growth of your product

Sep 19, 2024
Read article
Reflections
3 min read

Internal Mobility

Just like a utility player on a sports team discovering their ideal position, internal mobility allows you to explore different areas of engineering and find your true passion.

Sep 23, 2024
Read article
Reflections
5 min read

Attracting Top Engineering Talent to Your Startup

Advice on competing for great software engineers without name recognition

Sep 21, 2024
Read article
Reflections
5 min read

What's the Number One Thing Holding Most People Back from Reaching Their Full Potential?

Discover the biggest obstacle to success in tech and learn how to overcome it

Sep 29, 2024
Read article
Reflections
5 min read

Minimum Viable Documentation

How to create essential documentation that actually gets read and used.

Sep 27, 2024
Read article
Reflections
6 min read

The Monday Morning Test to Measure Engineering Team Health

Why the first day back can reveal everything about your engineering team's health

Nov 4, 2024
Read article
Reflections
3 min read

Take Your Writing Seriously

It’s not just about getting the message across; it’s about doing so in a way that’s easy for others to follow. Good writing shows respect for your team and your work.

Sep 19, 2024
Read article
Reflections
4 min read

Build Your Army

If you want to do great things, you'll need people with skills that complement yours. You can't do everything yourself. You need a team. You need an army. You need to build your army.

Oct 4, 2024
Read article

This article was originally published on https://www.trevorlasn.com/blog/when-should-you-actually-worry-about-tech-debt. It was written by a human and polished using grammar tools for clarity.