Litcius/Paper detail

Architectural design decisions that incur technical debt — An industrial case study

Mohamed Soliman, Paris Avgeriou, Yikun Li

2021Information and Software Technology16 citationsDOIOpen Access PDF

Abstract

During software development, some architectural design decisions incur technical debt, either deliberately or inadvertently. These have serious impact on the quality of a software system, and can cost significant time and effort to be changed. While current research efforts have explored general concepts of architectural design decisions and technical debt separately, debt-incurring architectural design decisions have not been specifically explored in practice. In this case study, we explore debt-incurring architectural design decisions (DADDs) in practice. Specifically, we explore the main types of DADDs, why and how they are incurred in a software system, and how practitioners deal with these types of design decisions. We performed interviews and a focus group with practitioners working in embedded and enterprise software companies, discussing their concrete experience with such architectural design decisions. We provide the following contributions: 1) A categorization for the types of DADDs, which extend a current ontology on architectural design decisions. 2) A process on how deliberate DADDs are made in practice. 3) A conceptual model which shows the relationships between the causes and triggers of inadvertent DADDs. 4) The main factors that influence the way of dealing with DADDs. The results can support the development of new approaches and tools for Architecture Technical Debt management from the perspective of Design Decisions. Moreover, they support future research to capture architecture knowledge related to DADDs.

Topics & Concepts

Technical debtArchitectural patternComputer scienceArchitectureProcess managementOntologyQuality (philosophy)Knowledge managementSoftware engineeringSoftware designSoftware developmentManagement scienceSoftwareEngineeringEpistemologyVisual artsProgramming languageArtPhilosophySoftware Engineering ResearchSoftware Engineering Techniques and PracticesAdvanced Software Engineering Methodologies
Architectural design decisions that incur technical debt — An industrial case study | Litcius