Definition of a Technical Debt Reduction Software Engineering Methodology for SMEs

Zsolt Dargó. (2019). Definition of a Technical Debt Reduction Software Engineering Methodology for SMEs. Trabajo Fin de Titulación (Master thesis). Universidad Politécnica de Madrid, ETSIT, EIT-SSA.

In the past two decades, the metaphor of technical debt has gained significant importance in the field of software engineering. In general, the term is used to describe scenarios when instead of providing a proper solution for a given task, a sub-optimal implementation is used in order to gain short term benefits. Unfortunately, this kind of decisions can – and most of the time do – result in increased maintenance costs in the long run. In monetary terms, these costs would be considered as the interest that is paid for the originally borrowed amount of money. Over time, software practitioners further refined the initially source code-focused concept and started to apply the metaphor for a much wider range of software engineering inefficiencies, such as architectural defects, inappropriate documentation or low test coverage. Due to its similarity to financial debt, the analogy has also become a valuable communication tool in situations when there are less technical people involved in discussions. This master’s thesis defines a technical debt reduction methodology which can help SMEs to control the accumulation of technical debt. In other words, the proposed methodology can be thought of as a set of steps and good practices that facilitate the long-lasting productivity and profitability of any given SME. Since this field of research is relatively new, the need for publications addressing the topic is still rather high. Technical debt can not only corrupt efficient evolvability and maintainability of software products, but it can also be directly converted into real-world monetary debt. Therefore, it is crucial for companies to keep their debt levels as low as possible, which requires a systematic way of managing technical debt. Besides providing such a methodology, the document also intends to raise awareness about the nature and dangers of taking on unreasonable amounts of debt by examining the most important characteristics of the phenomenon. Finally, the thesis presents an industrial case study as well, which aims to showcase how some of the most necessary steps can be taken in practice. This aforementioned case study was carried out at a software development company that mainly works on a few innovation projects. These projects are known to be particularly prone to accruing technical debt, which means that they are a perfect match for testing the suggested methodology.