Strategies for Paying Off Technical Debt
Technical debt: We all have it and every developer worth their salt wants to pay it down, but how do we actually manage this process?
Implementing a Crop Rotation
In my article on communicating technical debt I compared paying down technical debt to the importance of crop rotations in farming. If you keep working your field (the codebase) season after season to harvest a large load of crops (completing projects, adding features, etc.) and don’t allow for that field to recover for a season (paying down technical debt), it starts to lose its quality and overall yield over time.
This remains an apt metaphor for software development and it holds some hints at strategies we can consider when paying down technical debt.
Surprisingly, there’s a wide variety of ways to pay down technical debt. This is very helpful, since it gives us a lot of options to consider for planning purposes.
We’re going to assume that you’re working in an agile development for the purposes of this article, though much of this is still relevant to those using other methodologies with a little creative reinterpretation.