I've been operating from this perspective for a bit but want to write it out - code debt is not something to be avoided. You WANT code debt. There are some ways the metaphor works well, but a dangerous way it doesn't. Code debt is really cheap debt because baked in is the reality that a lot of code you write is going to be rewritten or thrown away anyways, so a lot of POTENTIAL debt is debt you never end up having to "pay back".