This slide is wrong!

(This post has originally been published on LinkedIn and has been cross-posted here for conservation and accessibility. It has been auto-translated from German and human-reviewed.)

❌ Technical debt is not the result of bad decisions!

I came across this slide last week at Fluttercon/Droidcon in Berlin, and I think it proves once again that the concept of technical debt is seldom well understood, and even more rarely communicated well.

Taking on debt in software engineering — just like in real life — can be a conscious, strategic decision. Debt is not automatically a mistake. And it doesn’t ruin a project either.

On the contrary: Many successful products and companies simply wouldn’t exist today if they hadn’t taken a shortcut or two in the past. Nobody needs a perfect product in two years. But everyone needs a working product today.

That’s why technical debt is, first and foremost, inherently neutral. What really matters is how we handle it:

  • 💰 Are we fully aware of the future costs?
  • 📈 Do we just let the debt sit there until the compounding interest of maintenance crushes us?
  • 💪 Or do we keep track of our open balances — and regularly pay them down?

Only by actively tackling legacy issues do you create the breathing room to take a new shortcut when you need one. 👣

✅ Therefore, technical debt becoming a problem is the result of unsustainable management!

Sometimes, though, I wonder if I’m being too idealistic about this and if the code purists might actually have a point after all.

What’s your take on this?

Updated: