Technical Debt in Microservices: A Mixed-Method Case Study

被引:2
作者
Verdecchia, Roberto [1 ]
Maggi, Kevin [1 ]
Scommegna, Leonardo [1 ]
Vicario, Enrico [1 ]
机构
[1] Univ Florence, Dept Informat Engn, Florence, Italy
来源
SOFTWARE ARCHITECTURE: ECSA 2023 TRACKS, WORKSHOPS, AND DOCTORAL SYMPOSIUM, ECSA 2023, CASA 2023, AMP 2023, FAACS 2023, DEMESSA 2023, QUALIFIER 2023, TWINARCH 2023 | 2024年 / 14590卷
关键词
Technical Debt; Microservices; Software Evolution; TIME-SERIES;
D O I
10.1007/978-3-031-66326-0_14
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
Background: Despite the rising interest of both academia and industry in microservice-based architectures and technical debt, the landscape remains uncharted when it comes to exploring the technical debt evolution in software systems built on this architecture. Aims: This study aims to unravel how technical debt evolves in software-intensive systems that utilize microservice architecture, focusing on (i) the patterns of its evolution, and (ii) the correlation between technical debt and the number of microservices. Method: We employ a mixed-method case study on an application with 13 microservices, 977 commits, and 38k lines of code. Our approach combines repository mining, automated code analysis, and manual inspection. The findings are discussed with the lead developer in a semi-structured interview, followed by a reflexive thematic analysis. Results: Despite periods of no TD growth, TD generally increases over time. TD variations can occur irrespective of microservice count or commit activity. TD and microservice numbers are often correlated. Adding or removing a microservice impacts TD similarly, regardless of existing microservice count. Conclusions: Developers must be cautious about the potential technical debt they might introduce, irrespective of the development activity conducted or the number of microservices involved. Maintaining steady technical debt during prolonged periods of time is possible, but growth, particularly during innovative phases, may be unavoidable. While monitoring technical debt is the key to start managing it, technical debt code analysis tools must be used wisely, as their output always necessitates also a qualitative system understanding to gain the complete picture.
引用
收藏
页码:217 / 236
页数:20
相关论文
共 50 条
[21]   Aligning Technical Debt Prioritization with Business Objectives: A Multiple-Case Study [J].
de Almeida, Rodrigo Reboucas ;
Kulesza, Uira ;
Treude, Christoph ;
Feitosa, D'angellys Cavalcanti ;
Guedes Lima, Aliandro Higino .
PROCEEDINGS 2018 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE AND EVOLUTION (ICSME), 2018, :655-664
[22]   How SonarQube-identified technical debt is prioritized: An exploratory case study [J].
Alfayez, Reem ;
Winn, Robert ;
Alwehaibi, Wesam ;
Venson, Elaine ;
Boehm, Barry .
INFORMATION AND SOFTWARE TECHNOLOGY, 2023, 156
[23]   A Case Study on Measuring the Size of Microservices [J].
Vural, Hulya ;
Koyuncu, Murat ;
Misra, Sanjay .
COMPUTATIONAL SCIENCE AND ITS APPLICATIONS - ICCSA 2018, PT V, 2018, 10964 :454-463
[24]   The Introduction of Technical Debt Tracking in Large Companies A Survey and Multiple Case-Study [J].
Martini, Antonio ;
Besker, Terese ;
Bosch, Jan .
2016 23RD ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE (APSEC 2016), 2016, :161-168
[25]   Evolution of technical debt remediation in Python']Python: A case study on the Apache Software Ecosystem [J].
Tan, Jie ;
Feitosa, Daniel ;
Avgeriou, Paris ;
Lungu, Mircea .
JOURNAL OF SOFTWARE-EVOLUTION AND PROCESS, 2021, 33 (04)
[26]   Self-Admitted Technical Debt in the Embedded Systems Industry: An Exploratory Case Study [J].
Li, Yikun ;
Soliman, Mohamed ;
Avgeriou, Paris ;
Somers, Lou .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2023, 49 (04) :2545-2565
[27]   Refactoring, Bug Fixing, and New Development Effect on Technical Debt: An Industrial Case Study [J].
Zabardast, Ehsan ;
Gonzalez-Huerta, Javier ;
Smite, Darja .
2020 46TH EUROMICRO CONFERENCE ON SOFTWARE ENGINEERING AND ADVANCED APPLICATIONS (SEAA 2020), 2020, :376-384
[28]   An Exploratory Study on the Influence of Developers in Technical Debt [J].
Alfayez, Reem ;
Behnamghader, Pooyan ;
Srisopha, Kamonphop ;
Boehm, Barry .
2018 IEEE/ACM INTERNATIONAL CONFERENCE ON TECHNICAL DEBT (TECHDEBT), 2018, :1-10
[29]   An Empirical Study on Technical Debt in a Finnish SME [J].
Lenarduzzi, Valentina ;
Orava, Teemu ;
Saarimaki, Nyyti ;
Systa, Kari ;
Taibi, Davide .
2019 13TH ACM/IEEE INTERNATIONAL SYMPOSIUM ON EMPIRICAL SOFTWARE ENGINEERING AND MEASUREMENT (ESEM 2019), 2019, :380-385
[30]   Making Technical Debt Visible Using Hybrid Sankey Diagrams: An Industrial Case Study [J].
Pacheco, Alexia ;
Marin-Raventos, Gabriela ;
Spinola, Rodrigo ;
Lopez, Gustavo ;
Seaman, Carolyn .
INTERNATIONAL JOURNAL OF SOFTWARE ENGINEERING AND KNOWLEDGE ENGINEERING, 2022, 32 (10) :1583-1616