TETRA, as a set of techniques and tools for calculating technical debt principal and interest

The paper covers the company’s proprietary approach to the assessment of software product quality and measurement of technical debt. In the paper, the authors state that the software product quality is the amount of various technical debts embedded into the product and delivered to end-users. Similar to the fact that any debt can be paid, the software product quality can be efficiently managed and measured by a set of techniques, parameters, and dimensions. The authors share the details of the company proprietary approach to technical debt management done with the help of the Technical DebT Reduction plAtform, TETRA. They share the measurement parameters, tools and major dimension for the assessment.

June 11, 2019 White Papers

If you have been in the software development industry for a long period, the chances you have had to explain the notion of software quality are quite high. The major stumbling block is that software quality is often understood differently. Some define quality as the level of customer satisfaction, others say, it is about meeting the requirement of the customer. For the tech world, it is the state of software being free from defects. To us, the latter is closer to the real world, though it often raises even more questions. At Intetics, we decided to fix the misunderstanding by carrying out intensive research on what the quality of a software product is, and how we can manage it efficiently. As a result, we came to an opinion that the quality of a software product is the amount of various technical debts embedded into the product and delivered to end-users.

Industry best practices state that technical debt is any code added now that will take more work to fix at a later time, typically with the purpose of achieving rapid gains. The source code is really one of the most important aspects in software. It is well known that the higher the number of problems in the source code, the more redevelopment is required. This is how the industry understands the technical debt, and we all agree. However, having dealt with it for many years, we started thinking about technical debt in a different way. We have come to an idea that technical debt is “a combined product non-compliance with technical guidelines and business objectives that negatively impact business results.”

TETRA

With this idea in our minds, we spent over 6000 hours of research, defining the critical dimensions of software product quality. These dimensions became the skeleton of our software product assessment platform, which we called TETRA, Technical DebT Reduction plAtform. Why TETRA? The technical debt is like a tiny tetra fish that exists in thousands of various species. It’s like that small, insignificant, sometimes “locally beautiful” trade-offs of quick solutions that are easy to implement instead of applying the overall best solution. When technical debt piles up, we pay an “interest” in the form of harder maintainability, mediocre user experience, development team productivity decline, and overall higher costs. We got all those little fish in one aquarium and created the TETRA platform. How do we know what really matters in software products and can we assess both the technical and the business sides?

They are measured and assessed by a certain set of techniques and tools, chosen on the basis of best practice analysis, Intetics original research, and expertise acquired during multiple projects. The result of these measurements gives the opportunity to calculate the technical debt of the overall software product and its parameters. To acquire the big picture, we assess the product as per eight dimensions in the following way.

I. DIMENSION 1.

Source code quality is the assessment of the quality of the product source code by the follower major parameters:

• Cyclomatic Complexity (methods, classes, files) is a measure of the number of linearly independent paths through a program module.
• Duplications (lines, blocks, files) is the number of physical lines touched by duplications.
• Code coverage (lines, branches) is the percent of source code covered by unit tests that help check individual units of the source code to evaluate whether they are fit for use.
• Rules compliance means the compliance of the source code to a coding standard and best practices of a particular programming language.
• SQALE rating is the rating that is given to a project related to the value of your Technical Debt Ratio.

To measure these metrics, we use the SonarQube tool [1] and additional created plugins.

Download the full version to learn more.

I Want to Know More

Download White-Paper