Hide metadata

dc.date.accessioned2022-08-19T12:29:24Z
dc.date.available2022-08-19T12:29:24Z
dc.date.issued2022
dc.identifier.urihttp://hdl.handle.net/10852/95121
dc.description.abstractBackground: Software systems must continuously evolve to meet new business requirements. A modular software architecture is key to facilitating the evolution of the system. Many software development organizations also require their software to be deployed on the cloud due to demands on scalability and availability. Microservices is an architectural style that allows the implementation of all these requirements. However, software architecture is prone to sub-optimal solutions, because of several factors such as time constraints, uncertainty, miscommunication, and the growing complexity of software systems. Such factors may lead to architectural technical debt (ATD). There are only a few studies about ATD in the context of microservices (MSATDs). Objective: This work aims to understand what MS-ATDs are, including their costs and solutions, and investigate methods to support their quantification, prioritization, and management. Method: The reported studies combined qualitative and quantitative research methods. We started with a multiple case study in seven large software development organizations to identify MS-ATDs, costs, and solutions. We then proceeded with an in-depth multiple case study in four large software development organizations on how a specific MS-ATD, the misuse of shared libraries, affects development agility. Next, we performed another multiple case study in three large software development organizations in the early stages of migration to microservices to understand how MS-ATDs occur during migration and how they can be prioritized. Finally, we conducted a quantitative case study in a large company before and after refactoring some MS-ATDs to understand how the refactoring affected the occurrence of incidents. We used incidents as a proxy of MS-ATD costs. Results: Our results include a catalog of MS-ATDs, their causes, their solutions, a quantification of the debts’ interest based on the number of incidents resulting from the debts, and an approach to prioritize MS-ATDs. Examples of MS-ATDs are the lack of communication standards among microservices, the misuse of shared libraries, and an excessive number of small products. We report negative effects of misusing shared libraries on development agility. We also presented suggestions of how software development organizations could deal with this problem. Finally, we proposed a systematic prioritization approach for MS-ATDs based on factors such as the likelihood of their occurrence, the difficulty of their resolution, and their importance for the practitioners. Conclusion: Software development organizations are still learning how to use microservices and pay a high interest due to the lack of experience with this architectural style. Such organizations can use our catalog to identify 16 different MS-ATDs, their costs, and solutions. They can also integrate our lightweight MS-ATD prioritization approach into their agile development processes. Researchers can find our results valuable in understanding MS-ATDs and contributing to reducing the current knowledge gap that leads to MS-ATD high costs. Finally, we quantified part of the MS-ATD interest using incidents. Such an approach might be helpful for companies and researchers when seeking new ways of measuring the debt’s interest.en_US
dc.language.isoenen_US
dc.relation.haspartPaper 1/Chapter 5 de Toledo, S. S. and Martini, A. and Sjøberg, D. I. K. ‘Identifying architectural technical debt, principal, and interest in microservices: A multiple-case study’. In: Journal of Systems and Software 177 (2021). An author version is included in the thesis. The published version is available at: https://doi.org/10.1016/j.jss.2021.110968
dc.relation.haspartPaper 2/Chapter 6 de Toledo, S. S. and Martini, A. and Sjøberg, D. I. K. ‘Improving Agility by Managing Shared Libraries in Microservices’. In: Paasivaara, Maria and Kruchten, Philippe (Ed.), Lecture Notes in Business Information Processing. Springer Berlin/Heidelberg. 396 (2020), pp. 195–202. An author version is included in the thesis. The published version is available at: https://doi.org/10.1007/978-3-030-58858-8_20
dc.relation.haspartPaper 3/Chapter 7 de Toledo, S. S. and Martini, A. and Nguyen, P. H. and Sjøberg, D. I. K. ‘Accumulation and prioritization of Architectural Debt in three companies migrating to microservices’. In: IEEE Access 10 (2022), pp. 37422–37445. An author version is included in the thesis. The published version is available at: https://doi.org/10.1109/ACCESS.2022.3158648
dc.relation.haspartChapter 8 de Toledo, S. S. and Martini, A. and Sjøberg, D. I. K. and Przybyszewska, A. and Frandsen, J. S. ‘Reducing Incidents in Microservices by Repaying Architectural Technical Debt’. In: Proceedings of the 47th Euromicro Conference on Software Engineering and Advanced Applications (SEAA). IEEE. (2021), pp. 196–205. An author version is included in the thesis. The published version is available at: https://doi.org/10.1109/SEAA53835.2021.00033
dc.relation.urihttps://doi.org/10.1016/j.jss.2021.110968
dc.relation.urihttps://doi.org/10.1007/978-3-030-58858-8_20
dc.relation.urihttps://doi.org/10.1109/ACCESS.2022.3158648
dc.relation.urihttps://doi.org/10.1109/SEAA53835.2021.00033
dc.titleManaging Architectural Technical Debt in Microservicesen_US
dc.typeDoctoral thesisen_US
dc.creator.authorSoares De Toledo, Saulo
dc.identifier.urnURN:NBN:no-97648
dc.type.documentDoktoravhandlingen_US
dc.identifier.fulltextFulltext https://www.duo.uio.no/bitstream/handle/10852/95121/1/PhD-Soares-De-Toledo.pdf


Files in this item

Appears in the following Collection

Hide metadata