Managing Technical Debt
DevOps Essentials
Introduction
Technical debt is one of the most insidious and damaging phenomena in software development. If left unchecked, it can destroy projects, products, entire software organizations, and even companies. Anybody that has worked on software intended to live for more than a few months is familiar with the signs that it has taken root:
- Making changes to code seems to take longer and longer over time
- There is low confidence in the quality of the software because changes often lead to regression bugs, and so a fear of change develops
- The code is hard for anyone (even the author) to understand
- Maintenance activities, such as updating dependencies, are almost always significant undertakings, and so the codebase is increasingly out of date
- Release cycles are in weeks, months, or even years
These are undesirable traits leading to an inevitable end-state where all forward progress halts.
So if tech debt is so dangerous, why do software organizations allow it to accumulate? You would think that organizations would make it a point to prevent it. If only it were this easy!
In this article, we’ll explore some of the reasons technical debt accumulates and…