Drew Barontini

More about me

Tech Debt

Building new features and managing tech debt is a tough balance.

Introducing new features increases the surface area of the codebase, which in turn increases the likelihood of bugs, regressions, and instability. This grows over time as more features are built.

But new features are fun to build! Clients and customers love the additional functionality. And it’s natural to want more. But there is a cost to the continual pipeline of new product features: tech debt.

So how can we manage this?

Pair tech debt work with new feature development.

By strategically identifying areas in the codebase to introduce new functionality while removing old features, you can improve the codebase strategically. This approach may require allocating more time than originally planned, dedicating additional time to ensure tech debt is addressed alongside new features.

Solve the core problem of a new feature quickly to create margin.

Here is a common scenario: We can take the short path with the solution, or we can take the longer path that includes a more abstract and nicely designed architecture. Go for the shorter path first, and then focus the additional time on refactoring and addressing technical debt. If refactoring work can’t be completed in time, move it to the cool-down or bet on it in a future cycle.

Address tech debt proactively by dedicating time in the development cycle.

Communicate openly with stakeholders about the importance of managing tech debt to prevent slowdowns in feature development, regressions, and bugs that could impact customer satisfaction.

Tech debt doesn’t get better with age. It’s like a variable interest rate — unpredictable and grows costlier over time. Find strategies to pay it down during development to keep your product humming along.