Lower the interest rate on your technical debt

There's a common misconception among software engineers that technical debt is always bad, and that deciding to take on technical debt is always a poor decision.

But just as with financial debt, taking on a manageable amount of technical debt for strategic reasons can be a sound decision.

Here's how "good debt" works in the financial world: Suppose you have enough money saved up to place a sizable down payment on a house. But with mortgage rates at historic lows, you might decide that you would rather put that money toward investments that are likely to yield higher returns. Or you may simply value having a large emergency fund, and you're willing to pay a low interest rate on a loan so you can preserve your cash on hand.

Similarly, here's how "good debt" works in tech: When there are immediate, high-yield opportunities, you might decide to take on technical debt, knowing that by seizing the opportunity, you'll be able to pay off that debt later and still be in a better position than if you'd let the opportunity pass you by.

But make no mistake, there is an interest rate associated with all technical debt, just as there is on all financial loans. And failing to fully appreciate the properties of that interest rate can be disastrous.

Determine your loan type and interest rate

In the world of money lending, loans come in many forms.

There are fixed-rate loans, where you know you'll pay a consistent rate throughout the length of the loan.

There are also variable-rate loans, where the interest rate changes with market conditions.

And then there are balloon loans and interest-only loans, which lure you in with the promise of lower payments than a traditional loan -- but because only a small portion (if any) of the principal is paid during the life of the loan, you end up with a balloon payment at the end that can be absolutely crushing if you're not prepared for it.

For technical debt, the interest you pay is in the form of time.

If it would take you a month to do something the right way, and a week to cobble it together in a way that meets your immediate needs but won't scale, the "interest" you pay is the difference between the time it would have taken you to do it the right way now (three weeks) and the time it will take you to do it the right way later -- which is likely more than three weeks because you've presumably built other services on top of the original solution.

But here's the scary part.

Unless you have reason to believe otherwise, you should assume that any technical debt you take on is of the "balloon loan" type.

Pop the balloon

Rarely do organizations take on technical debt with an amortization schedule already planned, whereby they chip away at the debt on a regular basis starting from day 1.

Instead, it's much more common for an organization to not have a plan or a timeline for when it will pay off the debt. They acknowledge that the debt will have to be paid at some point, but often the extent of that acknowledgment is an item on their backlog that doesn't get prioritized until the debt has grown considerably through inaction.

And when the debt comes due -- for instance, they find themselves unable to scale until the debt is addressed -- they end up in far worse shape than if they'd spent the time to build the thing correctly in the first place.

So how do you make sure this doesn't happen to you or your organization?

How do you avoid the "balloon loan" trap and lower the interest rate on the technical debt you have already accumulated?

Just as in the financial world, you get the best rates if you have the highest credit score, and you get the highest credit score by paying off your existing debt on schedule.

Improve your credit score

Your organization needs to manage the technical debts it takes on with the same rigor that it manages the financial debts it takes on.

Before signing off on a plan to take on technical debt to achieve a short-term, high-yield opportunity, your business stakeholders need to be willing to agree to the interest rate, which they pay by allotting time for your team to regularly reduce the principal on that debt.

For executives and product owners who would prefer to always be shipping new features, this can be a painful discipline to adopt.

But the more you make this a standard practice within your organization, the more your technical debt becomes analogous to a fixed-rate loan, rather than a balloon loan.

And when the executives and product owners see that being disciplined about paying down technical debt unlocks long-term opportunities, they will be more willing to commit to the practice in the future.

This, in effect, gives you lower interest rates, because you aren't constantly building on top of work that is itself laden with technical debt.

When there's no appetite for change

In all likelihood, there will come a time when you try to put this discipline into practice, and the stakeholders whose buy-in you need will push back.

They might say that these ideas are all well and good for companies with significant coffers and far-off deadlines, but for a scrappy startup (or a budget-starved team within a larger organization) that is just fighting to stay alive, the only way to live to fight another day is to put off tech debt until we're in a more comfortable position.

That might very well be true. The organization may have no choice but to accept "balloon loan" terms because it's out of other options.

This, of course, is a position no organization would prefer to be in. And you should ask yourself if it is a position that you, as an employee, want to be in. One way to approach it is to look at the level of risk and debt that you are comfortable taking on in your own life, and determining whether the company's strategy is less disciplined than your own.

But assuming that you intend to remain with your employer even thought it is not managing its technical debt well, here are a few things you might try to do to modestly move the needle, even if you can't get full buy-in.

• Identify the debt up front. Create a ticket for it in your project-management tool, and estimate its level of effort, just as you would any other ticket. If you want to go the extra mile, estimate how much harder it will be to implement 6 months from now. This, at least, gives your team visibility into the size and scope of the trade-off you're being asked to make.

• Use windfalls to pay down debt. Just as in personal finance, when you receive an unexpected windfall, one of the best uses for it is paying down your debt. Similarly, if you've scoped a project at 3 months, and have been given budget for 3 months, but it turns out that you're able to complete the project three weeks ahead of schedule, put those three weeks toward paying down technical debt. The organization still gets its deliverables on schedule, but your group is able to (partially) dig yourself out of the hole created by fixating on only short-term gains.

• Loudly proclaim the opportunities unlocked by paying down debt. Even if you have relatively few opportunities to address tech debt, make the most of each of those opportunities. At every company meeting or other gathering of stakeholders, point out to them that by investing a couple of weeks on a tech-debt item, you have enabled a critical business function to be scalable in a way it wasn't before, or you have reduced the time it takes to release all subsequent new features. The more outsiders come to understand the business value of paying down technical debt, the more they're likely to treat it as just as critical a practice as churning out new features.

About Shaun

Shaun Gallagher is the author of three popular science books and one silly statistics book:

He's also a software engineering manager and lives in northern Delaware with his wife and children.

Visit his portfolio site for more about his books and his programming projects.

The views expressed on this blog are his own and do not necessarily represent the views of his publishers or employer.

Recent posts

This online experiment identifies dogmatic thinking

Adapted from a 2020 study, this web experiment tests a cognitive quirk that contributes to dogmatic worldviews.

Read more

Distributism: A Kids' Guide to a Third-Way Economic System

This student guide explores three economic systems (capitalism, socialism, and distributism) and explains how distributism is different from the other two.

Read more

You can thrive in a high-paying career without being money-driven

What if making money is not one of your top goals? And what if you happen to stumble into a high-paying career nonetheless?

Read more

On compassionate code review

How to build up and encourage code authors during the review process

Read more

Rules for Poems

A poem about all the rules you can break — and the one rule you can't.

Read more

Other recent blog posts