Who owns technical debt?

What is technical debt?  Technical debt falls into a few main categories: coding something quick and dirty often to increase time to market; an outdated design; spaghetti code or bit rot where code has been added to repeatedly often by multiple developers.

In all cases the only solution is to refactor the code to both simplify and modernize it.  The problem is refactoring code does not introduce new features and so it can be difficult to convince a product owner or management of the importance of refactoring, as there is no obvious or immediate value. Hence it often is left unaddressed and carried forward as debt, that becomes difficult to “pay off” over time.

It is important for the whole team including the product owner to understand that this debt is owned by the whole team. Like any debt that must be paid, there are really only two ways to accomplish this: either by paying it down in small increments or paying it off all at once. The advantage to paying it off over time in small increments is that it hurts less in any given Sprint or Release. This is […]