How much is tech debt costing your company?
What is tech debt?
The term tech debt was first coined in 1992 by Ward Cunningham, one of the creators of agile software development and the Agile Manifesto. Tech debt was almost exclusively associated with software development and had negative connotations as a result of wrong decisions made by developers. One of the definitions, used in scientific research, is: tech debt describes the consequences of actions taken during software development, which intentionally or inadvertently prioritize customer value and/or project constraints, such as delivery deadlines, at the expense of technical implementation and appropriate design solutions. Over the years, the definition of tech debt has evolved, acknowledging that tech debt is not always the result of wrong decisions – it can easily accumulate as a result of rapidly evolving and specifically linked systems critical to business operations.
Tech debt as a significant cost in IT
- According to studies, developers spend on average 33% of their time dealing with (repaying) tech debt. Following this line of thought, if you pay your software engineers 100.000, then 33.000 of that goes towards dealing with tech debt.
- IT directors report that from 10% to 20% of the budget allocated for new tech products is actually absorbed in solving existing tech debt problems.
- A McKinsey study describes an insurance company that estimates the cost of its tech debt at between 15% and 60% of every dollar spent on information technology, despite not including this in business analysis.
- Also, another large bank, according to the same study, estimates that the cost of tech debt generated by their 1,000 systems and applications exceeds 2 billion dollars.
- Stripe estimates that tech debt itself has a impact on the global GDP of 3 trillion dollars.
How to calculate your technical debt?
Technical debt can be expressed in three different types of costs incurred:
- Maintenance of the status quo costs: Based on your team's hourly reports, analyze how much time your programming team devotes to tasks (or bugs) resulting from problematic system architecture or simply outdated technology. Assuming it's about 30%, as in the studies presented earlier, maintaining the status quo constitutes 30% of the maintenance costs of this team. Note that over time, technical debt usually increases, and so does the percentage.
- Debt repair (repayment) cost: Team's estimate of how much time and resources will be needed to repair the current system or completely replace it. Costs may include hiring new developers, purchasing new software, licenses, or employee training.
- Business constraints: Debt can hinder innovations and make it harder to launch new products or services. This type of cost is particularly difficult to calculate. A big challenge is to estimate the benefits lost by the business due to the debt-extended delivery process. Nevertheless, considering the costs of maintaining the status quo, you can estimate the level of delay compared to a situation where there is no technical debt.
How to avoid technical debt?
As an IT system administrator, there are specific steps you can take to avoid problems with technical debt and keep your technological environment up to date. Here are some recommendations that can help you:
- Regular software updates: Regular application of software updates and patches is a key element in maintaining the system in a current state. Regularly check for updates from software vendors and implement them according to plan. Neglecting regular updates can lead to security gaps and difficulties in compatibility with newer technologies.
- Monitoring new technologies and trends: Stay up to date with new technologies and trends in your field. Regularly follow industry news, participate in conferences and trainings, read industry publications. This way, you'll know what new solutions can be beneficial for your technological environment.
- Strategic planning and budgeting: Introducing new technologies requires strategic planning and appropriate budgeting. Develop a long-term technology strategy and include adequate financial resources for investment in new solutions. Planning ahead will help avoid situations where sudden and costly modernizations are necessary.
- Regular technology audits: Conduct regular technology audits to assess the state of your IT environment. Identify areas that require updates or modernization. Technology audits can help detect potential threats and problems in advance.
- Investment in training and employee development: Make sure your employees are properly qualified and aware of the latest technologies and best practices. Invest in training and developing their technical skills. Having a team well-versed in new technologies will allow for more effective management and avoidance of technical debt.
- Close cooperation with suppliers: Maintain close cooperation with technology suppliers and software providers. Communicate regularly with them to get current information about updates, new features, and development plans. Close cooperation with suppliers will help you keep up with technological progress and avoid delays.
Causes of technical debt
There are usually four different causes of debt — called the quadrants of technical debt, developed by Martin Fowler. They cover deliberate and inadvertent actions, reckless and prudent.
Assigning technical debt to these quadrants helps to assess the intentions and background of code problems. While some lines of debt-incurring code may be intentional and classified as good debt, other codes may be inadvertent and classified as bad debt.
- Prudent and deliberate: The decision to deliver quickly and deal with the consequences later results in prudent and intentional indebtedness. This type of debt is most often used when the product's stake is relatively low, and the benefits of quick delivery outweigh the risk.
- Reckless and deliberate: Knowledge of how to create the best code, but the priority is quick delivery, despite the awareness of later problems.
- Prudent and inadvertent: Prudent and unintentional debt occurs when there is a desire to create the best code, but a better solution is found after implementation.
- Reckless and inadvertent: Reckless and unintended debt appears when the team tries to create the best code without the necessary knowledge. The team often isn't aware of the mistakes they are making.
In conclusion, technical debt is a serious problem that affects almost every organization using digital products in their business.
It is estimated that developers devote up to 33% of their time to resolving technical debt, which means that substantial financial resources are redirected to dealing with problems that arose from poor decisions or failure to adapt to rapidly changing technologies.
Calculating technical debt is not a simple task, but it can be done by analyzing the costs of maintaining the status quo, the cost of debt repair, and the limitations it has imposed on the business.
Even though technical debt is inevitable in the dynamic world of technology, there are a number of steps that can help minimize its effects. Regular software updates and patching, monitoring new technologies, strategic planning and budgeting, regular technology audits, investing in employee training and development, and maintaining close cooperation with suppliers are actions that can assist in managing technical debt.