It turns out that technical debt can affect the company's finances, not just the code! Excellent tips for utilising TDR to quantify the mess. It's time to clean up!
Chief Roadblock Remover and Learning Enabler | Writing The Tech World With Milan Newsletter | Leadership and Career Coach | Building great products, building great teams!
𝗛𝗼𝘄 𝘁𝗼 𝗠𝗲𝗮𝘀𝘂𝗿𝗲 𝗧𝗲𝗰𝗵𝗻𝗶𝗰𝗮𝗹 𝗗𝗲𝗯𝘁? Are you aware that Technical Debt not only slows you down as a team, but when your software company is acquired, the size of tech debt influences the price (negatively)? These are two aspects of how technical debt badly influences your company. Yet, when you ask experts how to measure Technical Debt, you will get different answers. Sometimes, it is the opposite. During many years working as a software engineering expert and consultant, I figured out a few practical ways to measure it. 𝟭. 𝗧𝗲𝗰𝗵𝗻𝗶𝗰𝗮𝗹 𝗗𝗲𝗯𝘁 𝗥𝗮𝘁𝗶𝗼 (𝗧𝗗𝗥): This compares fixing technical debt to the original development cost. You can express this in terms of time or money spent. TDR helps get buy-in from business stakeholders by translating technical debt into financial terms. A ratio of the cost to fix a software system (Remediation Cost) to the cost of developing it (Development Cost). This ratio is called the Technical Debt Ratio (TDR). 𝗧𝗲𝗰𝗵𝗻𝗶𝗰𝗮𝗹 𝗗𝗲𝗯𝘁 𝗥𝗮𝘁𝗶𝗼 = (𝗥𝗲𝗺𝗲𝗱𝗶𝗮𝘁𝗶𝗼𝗻 𝗖𝗼𝘀𝘁 / 𝗗𝗲𝘃𝗲𝗹𝗼𝗽𝗺𝗲𝗻𝘁 𝗖𝗼𝘀𝘁) 𝘅 𝟭𝟬𝟬% We want to see this ratio at 5% or less. If it is higher, the software is in a bad state. This score indicates how long the engineering team would take to improve their codebase to the desired quality if expressed in time. 𝟮. 𝗖𝗼𝗱𝗲 𝗤𝘂𝗮𝗹𝗶𝘁𝘆 𝗠𝗲𝘁𝗿𝗶𝗰𝘀: Use tools to analyze code complexity, duplication, and violations of coding standards. Metrics like cyclomatic complexity, code churn, depth of inheritance, and lines of code ratio can provide quantitative data on the state of your codebase. Automated tools like SonarQube can analyze code and identify issues like code complexity, potential bugs, and duplication. 𝟯. 𝗗𝗲𝗳𝗲𝗰𝘁 𝗥𝗮𝘁𝗶𝗼 𝗮𝗻𝗱 𝗟𝗲𝗮𝗱 𝗧𝗶𝗺𝗲: Track how many new bugs are introduced compared to how many are fixed (defect ratio) or Change Failure Rate in Dora metrics (what percentage of your changes cause a failure). Lead time measures the time to deliver a change. High defect ratios and long lead times can indicate technical debt, making development slow and error-prone. You can create a "tech debt" label for new tickets related to it and use it to measure the technical debt. 𝟰. 𝗖𝗼𝗱𝗲 𝗖𝗼𝘃𝗲𝗿𝗮𝗴𝗲: This metric measures the portion of code executed by automated tests. Higher coverage indicates that a more robust codebase is less likely to have hidden technical debt. 𝟱. 𝗦𝘂𝗿𝘃𝗲𝘆𝘀: You can also regularly ask your people how bad technical debt in the project is in their view. You can ask them to scale it on a scale of 1 to 10, which doesn't mean much, but if you track it over time, you can see apparent trends. To read more about how to solve your technical debt, check the article in the comments. #technology #softwareengineering #programming #techworldwithmilan #devops
Accounting & Finance | Finance Administration | Customer Success
6moThis is new to me, thanks for sharing! TDR appears to be an effective way to quantify technical debt and prioritize areas for improvement. I found it interesting to see how tracking defect rates and test coverage can provide insight into the overall "health" of the codebase. Great post!