Variability Debt: A Multi-Method Study - Wolfart, Daniele; Assunção, Wesley K. Guez; Martinez, Jabier (Anais do Simpósio Brasileiro de Qualidade de Software (SBQS); 2023: Anais do XXII Simpósio Brasileiro de Qualidade de Software, 2023)
Technical debt is a metaphor to guide the identification, measurement, and general management of decisions that were mostly appropriate in the short term but created obstacles mainly for the evolution and maintenance of systems. Variability management, which is the ability to create variants of systems to satisfy different needs, is a potential source of technical debt. Variability debt, a term coined in this work, is caused by sub-optimal solutions in the implementation of variability management in software systems. We performed a systematic literature review to characterize variability debt, and conducted a field study in which we report quantitative and qualitative analysis based on documents (e.g., requirements, specifications, source code, and test cases) and a survey with stakeholders. The context is a large company with three different systems, where opportunistic reuse was applied to create variants for each system. We describe and characterize the variability debt phenomenon in this field study, and we assess the validity of the metaphor to create awareness in diverse company stakeholders and to guide technical debt management research related to variability aspects. The analysis of the field study’s artifacts 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.