The concept of technical debt is generally useful in approaching software development projects whether delivered internally or via a system integrator.
Technical debts are simply the amount of compromises to the code measured in the amount of work that needs to be done to fix these issues. Usually reflected in days and hours, if you multiply the technical debt days by the number of man-day cost you incur in that specific project, you get a very accurate estimation of how much quality is costing you. Apply that to your System Integrator and you can get a detailed level of visibility of how well your SI is performing on your projects and the level of calibre your SI is assigning to your project offshore.
So, How Do You Measure Technical Debts?
The first step of measuring technical debts is setting your code quality threshold. Your code quality threshold is a matrix of code practices categorised as either Blocker, Critical, Major … etc. These are code practices around correctness, multi-threading, security and other best practices that you want your developers internally or your SI developers to follow. A violation of these practices constitute a technical debt. Each violation has a “time-to-fix” associated with it. Tools like SonarQube are excellent tools to provide a default quality threshold that can be used as a starting point.
After setting your quality threshold, you need to implement a process of continuous code inspection so that you frequently use a tool like SonarQube to run analysis on new checked code into your repository. The result of each Sonar run is the latest status of the quality of your code measured in different manners – one of them is a calculation in days of the amount of technical debt this code has based on your quality modal.
The level of visibility managing with technical debts gives you is eye-popping. However, the foundation of managing with technical debts is implementing a continuous process that allows you to act on your technical debts quickly and promptly. In a DevOps implementation and given the right tools, you can even prevent the technical debts from occurring with pre-commit hooks into your source control.