I regularly review the technical debt tickets from my backlog, to prioritize them and remove those which are no longer relevant (fixed by some other development, obsolete…) Among those with high priority, we take 2 or 3 in each sprint, and this way our codebase is healthy for the moment.
The problem is that all those tickets that are still relevant but have not been prioritized, represent a big part of the backlog (50%), and my PO insists that they should be removed, the same way that he deletes regular Story tickets that he knows won't be prioritized in the next semester, in order to have a "lean and healthy backlog".
I acknowledge the fact that with our current "tech debt velocity", we won't be able to take most of them in the next semester, but it frightens me to delete tickets that are pointing to spots in our code that may rot if not fixed, lending further developments more difficult (well, you all know the point of tech debt and why it is important).
So my question is: should I prune the tech debt tickets with lower priority?
Best Answer
I would say that there isn't a single best answer for this problem. You've got a few overall strategies, you would probably be best doing all of them. But the information should never be deleted, but it can be transformed.
Keep them in the issue tracker with the rest of the project
For high priority or fresh debt I would keep this strategy, once tickets start getting older or are deemed very low priority I would move on to the next two strategies
Pros:
Cons:
Keep them in the issue tracker separated from the project
Move older tickets or less important tickets into a separate project and pull them into the main project as required for working on them.
Pros:
Cons:
Move the information into code
By using a special commenting style, ie
// TECHDEBT: ....
you can mark the areas required for clean up directly in your code base instead and these can be fixed up when there is spare time in the projectPros:
Cons: