eonootz

Tech Debt

July 27, 2025

Changing the subject from Cryptography / Maths to Software development for a ligher read.

My degree is in Economics, but IT paid better so I started working in software development instead :D. As a result, many of the topics discussed will inevitably draw parallels between IT and Economics.

Time preference means that individuals generally prefer current consumption over future consumption. People spend their resources now to get goods or services sooner, valuing immediate cunsumption more than delayed benefits.

In IT it’s basically the same thing, products that get shipped sooner are more valuable to the business, even though they will accrue a lot of technical debt, which bears a future cost of rework for IT.

Technical debt, in this context, includes every workaround, every skipped step, poor design, outdated practices in the development of a product, that leads to extra costs later on.

To keep things simple, make a list of the most common causes for tech debt:

  • Rushed releases Honestly in 20 years of software development and management, very few projects are delivered on time, within scope.
  • Neverending business changes, requests and requirements: Remember, “just” changing a screen in your app has a lot of impact in the code.
  • Feature creep: It’s better to launch a product with fewer but sound features and add more incrementally.
  • Lack of documentation: It’s always that damn missing documentation, even tough no one ever reads it :D.
  • Poor testing: This deserves an article by itself. Remember to invest heavily in QA and you will see a strong return on that investment.

Various strategies to minimize tech debt have been proposed:

  • Identify. Anyone should contribute to the technical debt identification, review etc. This should be added to the technical debt backlog.
  • Assess. Evaluate the true cost, compare the cost of fixing it now versus leaving it as-is.
  • Define capacity. Every team should allocate capacity to reduce tech debt at all times. In practice this is lower on everyone’s list.
  • Plan Implement Deliver. If you get to this step, you’re one of the few teams that take tech debt seriously
  • Track Review and Improve. You should review periodicaly the tech baggage for all your apps. Ideally include them in your pipeline workflow.