A familiar scenario unfolded as I sat in yet another product backlog meeting. Our product owner eagerly presented a list of exciting new features while our lead developer wore an expression that could only be described as barely concealed panic. “We need to address our tech debt,” he insisted, not for the first time. “If we don’t, we’ll back ourselves into a corner.”
Many of us in tech leadership roles know this tug-of-war between new features and addressing technical debt all too well. But how do we quantify this nebulous concept of “tech debt”? How can we decide when to pay it down versus forge ahead with new development?
In this article, we’ll explore a simple yet powerful way to measure tech debt, discuss its limitations, dive into a more comprehensive approach, and then come back to a practical, accessible method that can give you a clearer picture of your project’s technical health.

The Simple Ratio
Time on New Features vs. Time Fixing Issues
At its core, technical debt represents the cost of choosing quick solutions now over better approaches that would take longer. One straightforward way to measure this is by looking at how your team spends its time:
Tech Debt Ratio = Time spent fixing issues / Total development time
This ratio gives you a quick snapshot of how much of your development effort is spent addressing existing problems rather than building new value.
Why This Ratio Works
Simplicity: It’s easy to understand and calculate.
Measurability: Time spent on tasks is typically already tracked in most development environments.
Intuitive: It aligns with how many stakeholders already think about the cost of tech debt.
Actionable: It provides a clear lever for teams to pull (allocate more time to debt reduction).
The Limitations
While this simple ratio is a good starting point, it has several shortcomings:
Quality Blind Spot: It doesn’t account for the effectiveness of time spent on debt reduction.
Complexity Ignorance: Not all tech debt is created equal. Some issues might take more time to fix but have less impact.
Prevention Neglect: It focuses on fixing problems, not preventing them.
Context Absence: It doesn’t consider project phase, team expertise, or industry factors.
Digging Deeper
A Holistic Approach to Tech Debt
To get a more comprehensive view of tech debt, we must consider factors beyond time allocation. Let’s explore a more comprehensive approach that takes into account various aspects of software development:
Tech Debt Ratio = Debt Factors / Mitigation Factors
Where:
Debt Factors = Changes + Time + Knowledge Loss
Mitigation Factors = Refactoring + Documentation + Team Stability
Specifically:
Changes = Number of changes * Average complexity of changes
Time = Months since last major refactor
Knowledge Loss = Number of key personnel departures * Impact per departure
Refactoring = Hours spent on refactoring and paying off tech debt
Documentation = Percentage of system well-documented (0-100)
Team Stability = Average tenure of team members (in months)
and then there's
DORA Metrics:
DF (Deployment Frequency) = Score based on deployment frequency
LTC (Lead Time for Changes) = Score based on lead time for changes
CF (Change Failure Rate) = Score based on change failure rate
MTTR (Mean Time to Recovery) = Score based on time to restore service
Roughly, this formula attempts to capture the multifaceted nature of tech debt, considering not just the accumulation of debt but also efforts to mitigate it and overall team performance.
Let’s break down each component:
Debt Factors
Changes: This factor acknowledges that each change to the system potentially introduces tech debt. By multiplying the number of changes by their average complexity, we account for the frequency and difficulty of modifications.
Time: The longer a system goes without refactoring, the more tech debt accumulates. This linear factor represents the natural entropy of software systems over time.
Knowledge Loss: When key team members leave, they take crucial context and understanding with them. This factor quantifies the impact of personnel changes on the system’s sustainability.
Mitigation Factors
Refactoring: The hours spent on refactoring tasks represent active efforts to pay down tech debt.
Documentation: Well-documented systems are easier to maintain and less prone to accumulating tech debt. This factor rewards teams for keeping their documentation up-to-date.
Team Stability: Teams with longer average tenures will likely understand the system better, reducing the likelihood of introducing new tech debt.
DORA Performance Factor
The DORA metrics provide a standardized way to measure team performance:
Deployment Frequency: How often does the team deploy to production?
Lead Time for Changes: How long does it take to go from code committed to code successfully running in production?
Change Failure Rate: What is the percentage of deployments causing a failure in production?
Mean Time to Recovery: How long does restoring a service take when a failure occurs?
Taking It Further
We could continue to refine this model by incorporating additional factors:
Code complexity metrics (e.g., cyclomatic complexity, cognitive complexity)
Test coverage and quality
Architecture alignment with business needs
Technical stack relevance and modernity
Scalability and performance metrics
Security vulnerabilities and compliance issues
However, adding more factors makes the equation increasingly complex and less accessible. It requires more data to calculate accurately and becomes harder to explain to non-technical stakeholders.
The Need for Simplification
While this detailed approach provides a complete view of tech debt, it has several drawbacks:
Data Intensity: It requires a significant amount of data, some of which may be challenging to collect accurately.
Complexity: The formula may be difficult for all team members to understand and relate to.
Subjectivity: Some factors, like the impact of knowledge loss, involve subjective judgments.
Overhead: Regularly collecting and calculating all these metrics could become a substantial overhead.
Given these challenges, we need a more accessible way to assess tech debt that captures the essence of these factors without getting lost in the details.
The Tech Debt Questionnaire
A Practical Tool
To make tech debt assessment more accessible, I developed a questionnaire that covers key aspects of tech debt:
How many significant changes have been made to the system in the last quarter?
How long has it been since the last major refactoring effort?
Have any key team members left recently?
How much time was dedicated to refactoring in the last quarter?
What percentage of your system is well-documented?
What is the average tenure of your team members?
How often do you deploy to production?
What’s your lead time for changes?
What’s your change failure rate?
What’s your mean time to recover?
How complex is your codebase?
What’s your test coverage like?
Each question is scored on a scale, and the final tech debt ratio is calculated based on these scores. This approach distils the complicated factors we discussed earlier into more digestible questions that team members can answer as a survey.
Implementing the Tech Debt Assessment
To make the most of this assessment:
Regular Evaluations: Conduct the assessment quarterly to track trends over time.
Team Involvement: Have different team members complete the questionnaire to get diverse perspectives.
Action Planning: Use the results to identify areas for improvement and create actionable plans.
Balanced Approach: Remember, some level of tech debt is normal. The goal is to manage it, not eliminate it.
Conclusion
We’ve transformed from a simple time-based ratio through a complex, multi-factor equation to a practical questionnaire approach. Each method has strengths and weaknesses, but the questionnaire balances comprehensiveness and accessibility.
It encourages teams to consider various factors contributing to tech debt and provides a structured way to assess and track it over time. The goal isn’t to achieve a perfect score but to gain insights into your project’s health and make informed decisions about where to focus your efforts.
I developed a tool to assess your own team’s tech debt ratio, and I would appreciate your feedback.
How do you measure and manage tech debt in your organization? Have you found other effective methods? I’d love to hear your thoughts and experiences in the comments below.
Keep reading with a 7-day free trial
Subscribe to Paul Clegg to keep reading this post and get 7 days of free access to the full post archives.