Chapter 21. Technical Debt

You can think of technical debt as an analogy with friction in mechanical devices; the more friction a device experiences due to wear and tear, lack of lubrication, or bad design, the harder it is to move the device, and the more energy you have to apply to get the original effect. At the same time, friction is a necessary condition of mechanical parts working together. You cannot eliminate it completely; you can only reduce its impact.

Philippe Kruchten, Robert Nord, and Ipek Ozkaya, Managing Technical Debt: Reducing Friction in Software Development

21.0 Introduction

Avoiding technical debt is crucial in software development. It impacts many quality attributes such as readability, maintainability, scalability, reliability, long-term cost, code reviews, collaboration, reputation, and customer satisfaction. It makes code harder to understand, modify, and maintain, leading to decreased productivity and morale. Addressing technical debt early on ensures higher code quality, better system scalability, and adaptability, while minimizing the risk of failures and security breaches. By prioritizing clean code and minimizing technical debt, you will deliver reliable software, foster effective collaboration, and maintain a positive reputation, ultimately leading to enhanced customer satisfaction and business success.

The software development cycle does not end once code is working. Clean code needs to work correctly in all stages. Designing a process to create ...

Get Clean Code Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.