Tech debt is like a credit card, easy to use, but the interest rate is high

Introduction #

Tech debt is often seen as a problem that only affects the team responsible for the codebase. However, this is far from the truth. Tech debt is a problem that affects the entire organisation, from development to deployment and even customer satisfaction. In this article, we’ll explore why tech debt is not just the problem of the team and how it impacts the organisation’s ability to be agile and deliver new functionality.

Firstly, let’s define tech debt:

Tech debt is a metaphorical concept used to describe the cost of additional work created by choosing an easy solution now instead of using a better approach that would take longer. This additional work includes refactoring, fixing bugs, and maintaining the existing codebase.

In other words, tech debt is like a credit card, easy to use, but the interest rate is high, and the longer it takes to pay off, the more it costs.

Tech debt as an organisational problem #

So, why is tech debt not just a problem for the team? The answer is simple: tech debt affects the organisation’s ability to be agile and deliver new functionality to end-users. When code becomes difficult to change or maintain, it slows down the development process, making it harder to implement new features or fix bugs in a timely fashion, inevitably slowing down the time to market for new features. The more tech debt an organisation accumulates, the harder it becomes to escape this downward spiral. In addition, legacy code bases generally require extensive testing, further slowing down the organisation’s overall agility.

A part that people generally skim over is that tech debt also affects customer satisfaction. When the codebase becomes difficult to maintain, it increases the risk of bugs and errors that can impact the user experience. When end-users encounter issues with the product, it can lead to negative reviews, decreased usage, and, ultimately, lower revenue for the organisation.

Possible solutions #

There are a few ways to get out of the downward spiral of tech debt:

  • Clear separation of roles: To ensure that product and tech debt is prioritised, it’s crucial to establish a clear separation of roles and responsibilities. This means defining the roles of the tech lead and product owner and ensuring that each person is focused on addressing their respective concerns. For example, the tech lead should be primarily responsible for addressing technical matters, such as managing technical debt, improving the quality of the codebase, and ensuring that the product is scalable and secure. The product owner, on the other hand, should be primarily responsible for identifying and prioritising product features and ensuring that the product meets the needs of its users.
  • Product and tech are one: It’s important to recognise that in many products, tech and product are intertwined and should not be separated into two distinct categories. Separating product from tech makes it easy to prioritise product over tech, which can have long-term consequences for the product’s success, such as poor user experience, security vulnerabilities, or even the inability to compete with competitors. The latter can result in a loss of market share, eventually leading to a company running out of business.
  • Technical debt management: Teams can manage tech debt by prioritising it as part of their software development process. This involves identifying and tracking tech debt, estimating its impact on the project, and assigning resources to address it as needed. Identify the most critical areas of the codebase that need improvement and focus on them one at a time.
  • Boy scouting: Boy scouting, also known as “leave the campground cleaner than you found it,” is a practice that encourages developers to continuously improve the codebase by making small, incremental changes over time. The idea behind boy scouting is that developers can prevent technical debt from accumulating and keep the codebase healthy and maintainable by fixing minor issues as they arise. Boy scouting can be an effective way to avoid technical debt from accumulating, but it requires a mindset of continuous improvement and attention to detail. Remember that boy scouting does not replace more substantial technical debt reduction efforts, such as major refactoring projects or infrastructure upgrades. Instead, boy scouting should be seen as a complementary practice that can help to keep the codebase healthy and maintainable over time. By making minor improvements consistently, developers can ensure that the codebase remains in good shape and ready for future enhancements or changes.

Conclusion #

In conclusion, tech debt is more than just the problem of a single team. It’s an organisational problem that affects the company’s agility to deliver new functionality to end-users promptly and ultimately can affect its ability to remain competitive. In an overly saturated market, this can have devastating consequences.

There’s no easy way out of tech debt, but there are ways to regain control. Unfortunately, tech debt accumulates slowly, so getting rid of it will also take time. However, the suggestions above can help you change the tide and help the organisation become more agile.