Focusing Tech Debt Efforts on ‘Hotspots’ is Key, Argues Luca Rossi

?

๐ŸŒ€ Luca Rossi

LinkedIn Author

Author of Refactoring.fm โ€ข I write about making software and working together, to 150K+ engineers

In a recent LinkedIn post, ๐ŸŒ€ Luca Rossi challenges conventional wisdom regarding code quality and technical debt, arguing that efforts should be strategically focused on the most active parts of a codebase rather than on code that is merely poorly written but stable.

๐ŸŒ€ Rossi begins by stating a core tenet of his argument: “Bad code is bad only if you need to change it. If it looks bad, but is stable, it doesnโ€™t pose any concerns.” This perspective suggests that the perceived quality of code should be directly linked to its mutability and the frequency with which it requires modification, rather than its aesthetic or structural perfection.

The Misguided Nature of Traditional Tech Debt Management

According to ๐ŸŒ€ Rossi, much of the work done to address technical debt is often misdirected. He points out that without a clear understanding of code activity, teams may waste valuable resources on stable, albeit unsightly, code segments or, conversely, on areas that are active but already in a reasonable state.

This inefficiency stems from a human tendency to intuitively misjudge code activity. ๐ŸŒ€ Rossi highlights the extreme skew in code activity, noting that in most codebases, a very small percentage of the codeโ€”around 5%โ€”accounts for a disproportionately large amount of the development activityโ€”up to 90%.

He elaborates on this point:

“As humans we are bad at judging this intuitively, so a lot of work on tech debt is simply misguided: it either happens on badโ€”but stableโ€”code, or on areas that are active but already in relatively good shape.”

Lessons from Startup Due Diligence

๐ŸŒ€ Rossi shares a personal anecdote from his startup days involving a technical due diligence process during a potential M&A conversation. The consulting firm identified several areas of poor-quality code, which was not unexpected given the company’s strategic focus.

Over time, the startup had concentrated development efforts on critical product areas, allowing less strategically important or experimental sections to accumulate technical debt, including less rigorous testing and code duplication. ๐ŸŒ€ Rossi explains:

“In fact, over time we had doubled down on specific parts of the product we cared about, while phasing out others. The latter stayed experimental: less testing, more duplication, etc.”

However, the acquiring firm’s assessment did not differentiate between stable, low-activity code and the more dynamic, strategically vital sections. ๐ŸŒ€ Rossi found it challenging to convey this distinction.

The Importance of Frequency of Change

The core issue during the due diligence, as ๐ŸŒ€ Rossi sees it, was the failure to consider the frequency of change. While the startup highlighted its robust, strategically important code, the consultants gave equal weight to the less critical, but poorly written, experimental code. ๐ŸŒ€ Rossi states this observation plainly:

“In other words, the ๐—ณ๐—ฟ๐—ฒ๐—พ๐˜‚๐—ฒ๐—ป๐—ฐ๐˜† ๐—ผ๐—ณ ๐—ฐ๐—ต๐—ฎ๐—ป๐—ด๐—ฒ wasnโ€™t considered.”

Although the M&A deal eventually fell through for various reasons, ๐ŸŒ€ Rossi suspects that this disagreement over prioritizing technical debt based on code activity played a role, even if it wasn’t explicitly cited as a deal-breaker. He credits a conversation with Adam Tornhill as a significant influence on his thinking about this topic.

๐ŸŒ€ Rossi’s insights suggest a more pragmatic approach to software development and maintenance, emphasizing the need to identify and prioritize work on the parts of the codebase that are most likely to evolve, thereby maximizing the impact of quality improvement efforts.

📝 About This Content

This article is based on insights shared by ๐ŸŒ€ Luca Rossi on LinkedIn.

📅 Originally posted on December 19, 2025 | View original post on LinkedIn โ†’