We need enough technical debt

I think developers tend to think that having technical debt is always a bad thing. It might. But sometimes it isn’t. Having piles of debt is certainly bad, but I think having none could be equally problematic.

When somebody tells me that they keep technical debt at zero all the time I think they are either lying to me, or spending too much time working on the wrong priorities.

(Here is where every project, situation, and team plays a role. Everything is relative, so what I’m assuming here might or might not apply to your current situation.)

On the projects I work, shipping is usually one of the most important features. All the time we spend getting rid of accumulated debt is time where we aren’t shipping. There has to be a balance.

Getting rid of all existing debt is usually unnecessary. Starving artists with noble ideals can’t pay the bills (by definition they don’t even have food to eat). I’d rather spend the time fixing only what’s really important.

But there’s a fine line between “this is important” and “this is not a big deal”. Here is where experience comes into play. There’s also a problem with accumulating a lot of not important issues (dead by a thousand cuts).

If I wanted to summarize the idea I’d say that knowing when to act on technical debt is a skill. (Another one we need.) Not too high, not too low. We just need enough.

Have something to say about this post? Get in touch!

Want to read more? Visit the archive.