TY - JOUR
T1 - Variability debt in opportunistic reuse
T2 - A multi-project field study
AU - Wolfart, Daniele
AU - Martinez, Jabier
AU - Assunção, Wesley K.G.
AU - Colanzi, Thelma E.
AU - Egyed, Alexander
N1 - Publisher Copyright:
© 2024 Elsevier Inc.
PY - 2024/4
Y1 - 2024/4
N2 - Technical debt is a metaphor to guide the identification, measurement, and general management of decisions that are appropriate in the short term but create obstacles in the future evolution and maintenance of systems. Variability management, which is the ability to create system variants to satisfy different business or technical needs, is a potential source of technical debt. Variability debt, recently characterized in a systematic literature review we conducted, is caused by suboptimal solutions in the implementation of variability management in software systems. In this work, we present a field study in which we report quantitative and qualitative analysis of variability debt through artifact analysis (e.g., requirements, source code, and tests) and a survey with stakeholders (e.g., analysts, developers, managers, and a user). The context is a large company with three different systems, where opportunistic reuse (a.k.a., copy-and-paste or clone-and-own reuse) of almost all project artifacts was performed to create variants for each system. We analyze the variability debt phenomenon related to opportunistic reuse, and we assess the validity of the metaphor to create awareness to stakeholders and guide technical debt management research related to variability aspects. The results of the field study show evidences of factors that complicate the evolution of the variants, such as code duplication and non-synchronized artifacts. Time pressure is identified as the main cause for not considering other options than opportunistic reuse. Technical practitioners mostly agree on the creation of usability problems and complex maintenance of multiple independent variants. However, this is not fully perceived by managerial practitioners.
AB - Technical debt is a metaphor to guide the identification, measurement, and general management of decisions that are appropriate in the short term but create obstacles in the future evolution and maintenance of systems. Variability management, which is the ability to create system variants to satisfy different business or technical needs, is a potential source of technical debt. Variability debt, recently characterized in a systematic literature review we conducted, is caused by suboptimal solutions in the implementation of variability management in software systems. In this work, we present a field study in which we report quantitative and qualitative analysis of variability debt through artifact analysis (e.g., requirements, source code, and tests) and a survey with stakeholders (e.g., analysts, developers, managers, and a user). The context is a large company with three different systems, where opportunistic reuse (a.k.a., copy-and-paste or clone-and-own reuse) of almost all project artifacts was performed to create variants for each system. We analyze the variability debt phenomenon related to opportunistic reuse, and we assess the validity of the metaphor to create awareness to stakeholders and guide technical debt management research related to variability aspects. The results of the field study show evidences of factors that complicate the evolution of the variants, such as code duplication and non-synchronized artifacts. Time pressure is identified as the main cause for not considering other options than opportunistic reuse. Technical practitioners mostly agree on the creation of usability problems and complex maintenance of multiple independent variants. However, this is not fully perceived by managerial practitioners.
KW - Clone and own
KW - Software reuse
KW - Technical debt
KW - Variability management
UR - http://www.scopus.com/inward/record.url?scp=85183935780&partnerID=8YFLogxK
U2 - 10.1016/j.jss.2024.111969
DO - 10.1016/j.jss.2024.111969
M3 - Article
AN - SCOPUS:85183935780
SN - 0164-1212
VL - 210
JO - Journal of Systems and Software
JF - Journal of Systems and Software
M1 - 111969
ER -