How to manage technical debt in 2024

Matt Tanner

August 9, 2024

User browsing through vfunction site

For any software application that continually evolves and requires updates, accumulating at least some technical debt is inevitable. Unfortunately, similar to financial debt, its downsides can quickly become unsustainable for your business when tech debt is left unmanaged. Developers, architects, and others working directly on the code will quickly be able to feel the impacts of poorly managed technical debt.

With its omnipresence, managing technical debt is a big problem for today’s companies. A 2022 McKinsey study found that technical debt amounts to up to 40 percent of their entire technology estate. Meanwhile, a 2024 survey of technology executives and practitioners found that for more than 50% of companies, technical debt accounts for greater than a quarter of their total IT budget blocking otherwise viable innovations if not addressed.

It’s not a new issue, either. As a 2015 study by Carnegie Mellon University found, much of the technical debt currently present has been around for a decade or more. The study found architectural issues to be the most significant source of technical debt. A challenging problem to fix when many of the issues are rooted in decisions and code written many years prior. Effective and strategic ways to manage technical debt, specifically architectural debt, must be critical to your IT management processes.

ranking sources of technical debt
Carnegie Mellon study found architectural issues to be the most significant source of technical debt.

As time passes, technical debt accumulates, spreading through the foundations of your technology architecture. After all, the most significant source of technical debt comes from bad architecture choices that, if left untreated, affect the viability of your most important software applications. In this blog, we look at how you can make 2024 the year you get a handle on your technical debt and overall technical debt management.

Managing technical debt at the architectural level

Not all technical debt is created equal. Using the broad term alone can be surprisingly misleading because not all technical debt is bad. Due to deadlines and the implementation needs of any software build, some of the debt is inevitable or can be a valid trade-off to getting good software in place on time. Perfection, after all, can be the enemy of good.

technical debt trade-offs
Some debt can be a valid trade-off to getting good software in place on time.

The problem becomes significant when technical debt occurs unintentionally or gets built into the software’s architecture. Technical debt that goes unmanaged becomes legacy technical debt that can live at the core of your IT infrastructure for years. Over time, the debt begins to cause architectural drift, where the application architecture’s current state moves away from the target state, continuing to harm your overall infrastructure.

Is all technical debt bad?
Read More

At the architectural level, the ability to manage technical debt becomes essential. Other types of debt, like code quality, bugs, performance issues, and software composition problems, can be fixed. However, when the debt is built into the software architecture, it becomes a deep-seated issue challenging to solve or manage without significant investment and time.

The core problem is that architectural debt tends to be more abstract. Its design isn’t based on a few lines of code that can be fixed but is layered into the architecture. These issues are often caused by shortcuts, prioritizing convenience, and concerns around speed to market during the initial build; its unintentional nature can cause significant liabilities that fester for the longer term.

Five steps to manage architectural technical debt in 2024

Fortunately, difficulty in managing technical debt at the architectural level does not mean the process is impossible. It just means taking a more intentional and strategic approach to an issue that likely has been spreading quietly in your software architecture.

That process takes time, effort, and organization-wide buy-in. However, with the right approach and steps, any technical leader can achieve it. Let’s examine five critical steps in managing architectural technical in 2024.

1. Make technical debt a business priority

As devastating as architectural debt can be, an unfortunate truth remains. The above-mentioned Carnegie Mellon University study found that most management is mainly unaware of the dangers of technical debt or the value of finding more effective ways to manage it. That, in turn, makes building buy-in on any effort to address technical debt a necessary first step.

As a recent article by CIO points out, that process has to begin with treating architectural debt as the danger it is for your business. The article cites Enoche Andrade, a digital application innovation specialist at Microsoft, who emphasizes the need for all executives to be aware of the issue:

“CIOs have a critical responsibility to raise awareness about technical debt among the board and leadership teams. To foster a culture of awareness and accountability around technical debt, companies should encourage cross-functional teams and establish shared goals and metrics that encourage all groups to work together toward addressing technical debt and fostering innovation. This can include creating a safe environment for developers to experiment with new approaches and technologies, leading to innovation and continuous improvement.”

Enoche Andrade, Digital Application Innovation Specialist at Microsoft

But in reality, that process begins even earlier. In many cases, simply citing the potential costs and risks of existing debt and failure to manage that debt can perk up ears. 

A recent report by Gartner emphasizes just how important incorporating architectural technical debt (ATD) as a strategic priority can become for your organization. It’s a crucial first step to ensure that any actions taken and resources invested have the full support of the entire enterprise.

2. Systematically understand and measure technical debt

Although getting buy-in is a challenge, you must rely on a solid foundation to understand your architectural debt to be effective in getting buy-in and remedying technical debt issues. This is a critical component of a comprehensive technical debt management strategy. Understanding and analyzing its scope as it relates to your software architecture has to be among the earliest steps you take.

Unlike identifying code-level technical debt, this step is more complicated for architectural technical debt. Since it is far from straightforward, this type of debt is often difficult to reconcile. This is especially true considering that depending on your operation and industry, your architecture may look very different from the many case studies you find online, making it difficult to follow a simple template.

 

The key, instead, is to prioritize and systematize architectural observability—to understand and analyze your digital architecture at its most fundamental level. Insights into architectural drift and other issues can lead to incremental plans designed to improve the software at its most fundamental level.

The more you can build architectural observability into your regular quality assurance process, the easier it will be to find hidden dangers in the architecture that underpins your apps.

3. Prioritize your fixes strategically

With a solid understanding of your architectural debt, it’s time to begin building a strategy to manage that technical debt. As with many IT problem-solving processes, the two key variables are the potential impact of the issue and the time it would take to fix it:

  • The higher the potential negative impact of the architectural debt on your software, the more urgent it becomes to fix it comprehensively.
  • The easier an architectural debt issue is to fix, the faster you can begin eliminating or mitigating its potential harm to your software architecture.

Building the correct priority list to reduce technical debt is as much art as science. At worst, you might have to rebuild and modernize your entire software architecture. The right architectural observability tools can help you build that priority list based on your findings, providing a more precise roadmap to solve the issues at their root.

vfunction to-dos
Example of a prioritized list of to-do’s based on vFunction’s AI-driven analysis.

4. Be intentional about any new technical debt

As mentioned above, some technical debt is intentional due to trade-offs your development team is willing to make. Architectural debt, however, should not generally fall into this category. The negative impact of its deep roots is too significant for any speed or convenience trade-off to be worth it in the long term.

Architectural Technical Debt and Its Role in the Enterprise
Read More

The key is being intentional about any technical debt you take on. As Mike Huthwaite, CIO of Hartman Executive Advisors, points out in the CIO article,

“Intentional technical debt has its place and has its value; unintentional technical debt is a greater problem. When we don’t track all the technical debt, then you can find you’re on the brink of bankruptcy.”

That, in turn, means educating your entire team on the dangers of technical debt and becoming more intentional about understanding its potential occurrences and implications. At its best, this means limiting its use where possible and avoiding the more abstract and deep-rooted architectural debt altogether.

5. Establish a roadmap to manage technical debt over time systematically

Finally, any effort to manage technical debt on the architectural level has to be ongoing. Simply analyzing your software once and running through the priority list from there is not enough as you look to optimize your software infrastructure and minimize the potential fallout of architectural debt over time. Every time additions and updates happen within an application, architectural drift and unintentional technical debt can occur.

Instead, plan to build the debt management process into your ongoing development workflow. Continue to analyze the debt via architectural observability, prioritizing where you can pay it down, perform the actual work, and repeat the process. At its best, it becomes a cycle of continuous improvement, each turn improving your architecture over time.

vFunction and architectural observability: The key to architectural technical debt management in 2024

Managing architectural tech debt is a complex process, but it doesn’t need to be impossible. Much of that complexity can be managed through a strategic investment in architectural observability. Knowing how to manage technical debt effectively will empower your organization to maintain a healthy and efficient IT infrastructure. Once you can identify technical debt and prioritize where to begin minimizing it, taking action becomes much more straightforward and can be performed continuously. A robust technical debt management strategy will ensure your architectural improvements are sustainable and constantly optimized. To get there, the right software is critical. vFunction can help with a platform designed to analyze, prioritize, and pay down your architectural debt over time.

vfunction platform determine application complexity
vFunction analyzes applications and then determines the level of effort to rearchitect them.

When it comes to using vFunction to discover and manage technical debt, architectural observability can bring a few key advantages. These include:

  • Engineering velocity: vFunction dramatically speeds up the process of improving an application’s architecture and application modernization, such as moving monoliths to microservices, if that’s your desired goal. This increased engineering velocity translates into faster time-to-market for products and features and a modernized application.
  • Increased scalability: By helping architects view and observe their existing architecture as the application grows, application scalability becomes much easier to manage. Scaling is more manageable by seeing the application’s landscape and helping improve each component’s modularity and efficiency.
  • Improved application resiliency: vFunction’s comprehensive analysis and intelligent recommendations increase your application resiliency and architecture. By seeing how each component is built and interacts with each other, teams can make informed decisions favoring resilience and availability.

Using vFunction, you can establish a current picture of your application’s architecture, understand areas of existing technical debt, and continuously observe changes as the application evolves.

Conclusion

Software development is rarely a linear process, and because of this, introducing technical debt is part of the normal development cycle. Avoiding technical debt is almost impossible, so it is critical to track technical debt and reduce it when it is not intentional. Managing technical debt is a fact of life for developers, architects, and other technical members of a project’s development team, and getting the right tools in place to observe and remedy it when needed is essential.

When it comes to understanding and monitoring technical debt at the most crucial level, within the applications architecture, vFunction’s architectural observability platform is an essential tool. Contact our team to understand more about how vFunction can help your team with technical debt reduction and manage it moving forward.

Matt Tanner

Matt is a developer at heart with a passion for data, software architecture, and writing technical content. In the past, Matt worked at some of the largest finance and insurance companies in Canada before pivoting to working for fast-growing startups.

Get started with vFunction

See how vFunction can accelerate engineering velocity and increase application resiliency and scalability at your organization.