skip to main content
10.1145/3629479.3629513acmotherconferencesArticle/Chapter ViewAbstractPublication PagessbqsConference Proceedingsconference-collections
research-article

Variability Debt: A Multi-method Study

Published:06 December 2023Publication History

ABSTRACT

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.

References

  1. Muhammad Sarmad Ali, Muhammad Ali Babar, and Klaus Schmid. 2009. A Comparative Survey of Economic Models for Software Product Lines. In 35th Euromicro Conf. on Software Engineering and Advanced Applications. 275–278.Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Sven Apel, Don Batory, Christian Kästner, and Gunter Saake. 2013. Software product lines. Feature-Oriented Software Product Lines: Concepts and Implementation (2013), 3–15.Google ScholarGoogle ScholarCross RefCross Ref
  3. Elvira-Maria Arvanitou, Apostolos Ampatzoglou, Stamatia Bibi, Alexander Chatzigeorgiou, and Ioannis Stamelos. 2019. Monitoring Technical Debt in an Industrial Setting. In Evaluation and Assessment on Software Engineering. ACM, 123–132.Google ScholarGoogle Scholar
  4. Wesley K. G. Assunção, Roberto E. Lopez-Herrejon, Lukas Linsbauer, Silvia R. Vergilio, and Alexander Egyed. 2017. Reengineering legacy applications into software product lines: a systematic mapping. Empirical Software Engineering 22, 6 (2017), 2972–3016.Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Paris Avgeriou, Philippe Kruchten, Ipek Ozkaya, and Carolyn B. Seaman. 2016. Managing Technical Debt in Software Engineering (Dagstuhl Seminar 16162). Dagstuhl Reports 6, 4 (2016), 110–138.Google ScholarGoogle Scholar
  6. Muhammad Ali Babar, Lianping Chen, and Forrest Shull. 2010. Managing Variability in Software Product Lines. IEEE Software 27 (2010), 89–91.Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Amine Benmerzoug, Lamia Yessad, and Tewfik Ziadi. 2020. Analyzing the Impact of Refactoring Variants on Feature Location. In 19th International Conference on Software and Systems Reuse (ICSR). Springer, 279–291.Google ScholarGoogle Scholar
  8. Thorsten Berger, Ralf Rublack, Divya Nair, Joanne M. Atlee, Martin Becker, Krzysztof Czarnecki, and Andrzej Wasowski. 2013. A survey of variability modeling in industrial practice. In 7th Int. Workshop on Variability Modelling of Software-intensive Systems. ACM, 7:1–7:8.Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Thorsten Berger, Jan-Philipp Steghöfer, Tewfik Ziadi, Jacques Robin, and Jabier Martinez. 2020. The state of adoption and the challenges of systematic variability management in industry. Empirical Software Engineering 25, 3 (2020), 1755–1797.Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Rafael Capilla, Jan Bosch, and Kyo-Chul Kang. 2013. Systems and Software Variability Management: Concepts, Tools and Experiences. Springer.Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Rafael Capilla, Tommi Mikkonen, Carlos Carrillo, Francesca Arcelli Fontana, Ilaria Pigazzini, and Valentina Lenarduzzi. 2021. Impact of Opportunistic Reuse Practices to Technical Debt. In Int. Conference on Technical Debt. 16–25.Google ScholarGoogle ScholarCross RefCross Ref
  12. Georgios Digkas, Nikolaos Nikolaidis, Apostolos Ampatzoglou, and Alexander Chatzigeorgiou. 2019. Reusing Code from StackOverflow: The Effect on Technical Debt. In 45th Euromicro Conference on Software Engineering and Advanced Applications. 87–91.Google ScholarGoogle ScholarCross RefCross Ref
  13. Yael Dubinsky, Julia Rubin, Thorsten Berger, Slawomir Duszynski, Martin Becker, and Krzysztof Czarnecki. 2013. An Exploratory Study of Cloning in Industrial Software Product Lines. In 17th European Conference on Software Maintenance and Reengineering. IEEE Computer Society, 25–34.Google ScholarGoogle Scholar
  14. Wolfram Fenske, Jens Meinicke, Sandro Schulze, Steffen Schulze, and Gunter Saake. 2017. Variant-preserving refactorings for migrating cloned products to a product line. In 24th Int. Conference on Software Analysis, Evolution and Reengineering. IEEE, 316–326.Google ScholarGoogle ScholarCross RefCross Ref
  15. Wolfram Fenske and Sandro Schulze. 2015. Code Smells Revisited: A Variability Perspective. In 9th Int. Workshop on Variability Modelling of Software-Intensive Systems. ACM, 3–10.Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Yuepu Guo and Carolyn B. Seaman. 2011. A portfolio approach to technical debt management. In 2nd Workshop on Managing Technical Debt. ACM, 31–34.Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Helvio Jeronimo Junior and Guilherme Horta Travassos. 2022. Consolidating a common perspective on Technical Debt and its Management through a Tertiary Study. Inf. Softw. Technol. 149 (2022), 106964.Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Barbara Kitchenham, O Pearl Brereton, David Budgen, Mark Turner, John Bailey, and Stephen Linkman. 2009. Systematic literature reviews in software engineering–a systematic literature review. Inf. Softw. Technol. 51, 1 (2009), 7–15.Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Philippe Kruchten, Robert Nord, and Ipek Ozkaya. 2019. Managing Technical Debt: Reducing Friction in Software Development (1st ed.). Addison-Wesley Professional.Google ScholarGoogle Scholar
  20. Charles W. Krueger. 2001. Easing the Transition to Software Mass Customization. In 4th Int. Workshop on Software Product-Family Engineering. Springer, 282–293.Google ScholarGoogle Scholar
  21. Jacob Krüger and Thorsten Berger. 2020. An Empirical Analysis of the Costs of Clone- and Platform-Oriented Software Reuse. In 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering. ACM, 432–444.Google ScholarGoogle Scholar
  22. Jacob Krüger, Wardah Mahmood, and Thorsten Berger. 2020. Promote-Pl: A Round-Trip Engineering Process Model for Adopting and Evolving Product Lines. In 24th ACM Conference on Systems and Software Product Line. ACM.Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Valentina Lenarduzzi, Terese Besker, Davide Taibi, Antonio Martini, and Francesca Arcelli Fontana. 2021. A systematic literature review on Technical Debt prioritization: Strategies, processes, factors, and tools. Journal of Systems and Software 171 (2021), 110827. https://doi.org/10.1016/j.jss.2020.110827Google ScholarGoogle ScholarCross RefCross Ref
  24. Zengyang Li, Paris Avgeriou, and Peng Liang. 2015. A systematic mapping study on technical debt and its management. J. Syst. and Software 101 (2015), 193–220.Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Zengyang Li, Paris Avgeriou, and Peng Liang. 2015. A systematic mapping study on technical debt and its management. J. Syst. and Software 101 (2015), 193–220.Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Crescencio Lima, Wesley Klewerton Guez Assunção, Jabier Martinez, William Mendonça, Ivan do Carmo Machado, and Christina von Flach G. Chavez. 2019. Product line architecture recovery with outlier filtering in software families: the Apo-Games case study. J. Braz. Comput. Soc. 25, 1 (2019), 7:1–7:17.Google ScholarGoogle ScholarCross RefCross Ref
  27. Rezvan Mahdavi-Hezaveh, Jacob Dremann, and Laurie Williams. 2021. Software development with feature toggles: practices used by practitioners. Empirical Software Engineering 26, 1 (2021).Google ScholarGoogle Scholar
  28. Jabier Martinez, Wesley K. G. Assunção, and Tewfik Ziadi. 2017. ESPLA: A Catalog of Extractive SPL Adoption Case Studies. In 21st International Systems and Software Product Line Conference. ACM, 38–41.Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Jabier Martinez, Tewfik Ziadi, Tegawendé F. Bissyandé, Jacques Klein, and Yves Le Traon. 2017. Bottom-up Technologies for Reuse: Automated Extractive Adoption of Software Product Lines. In 39th Int. Conference on Software Engineering Companion. IEEE, 67–70.Google ScholarGoogle Scholar
  30. Raul Medeiros, Jabier Martinez, Oscar Díaz, and Jean-Rémy Falleri. 2023. Visualizations for the evolution of Variant-Rich Systems: A systematic mapping study. Inf. Softw. Technol. 154 (2023), 107084.Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Klaus Pohl, Günter Böckle, and Frank van der Linden. 2005. Software Product Line Engineering - Foundations, Principles, and Techniques. Springer. https://doi.org/10.1007/3-540-28901-1Google ScholarGoogle ScholarCross RefCross Ref
  32. Leilane Ribeiro, Mário Farias, Manoel Mendonça, and Rodrigo Spínola. 2016. Decision Criteria for the Payment of Technical Debt in Software Projects: A Systematic Mapping Study. In 18th Int. Conference on Enterprise Information Systems. 572–579.Google ScholarGoogle Scholar
  33. Nicolli Rios, Manoel Gomes de Mendonça Neto, and Rodrigo Spínola. 2018. A tertiary study on technical debt: Types, management strategies, research trends, and base information for practitioners. Inf. Softw. Technol. 102 (2018), 117–145.Google ScholarGoogle ScholarCross RefCross Ref
  34. Klaus Schmid and Isabel John. 2004. A customizable approach to full lifecycle variability management. Science of Computer Programming 53, 3 (2004), 259–284.Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. C. A. Siebra, G. S. Tonin, F. Q. B. da Silva, R. G. Oliveira, L. C. Antonio, R. C. G. Miranda, and A. L. M. Santos. 2012. Managing technical debt in practice: An industrial report. In Int. Symp. on Empirical Software Engineering and Measurement. 247–250.Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Iuri Santos Souza, Ivan do Carmo Machado, Carolyn Seaman, Gecynalda Soares da Silva Gomes, Christina Chavez, Eduardo Santana de Almeida, and Paulo César Masiero. 2019. Investigating Variability-aware Smells in SPLs: An Exploratory Study. In 33rd Brazilian Symposium on Software Engineering. ACM, 367–376.Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. SPLC. 2020. Product Line Hall of Fame. https://splc.net/fame.htmlGoogle ScholarGoogle Scholar
  38. Klaas-Jan Stol and Brian Fitzgerald. 2018. The ABC of Software Engineering Research. ACM Trans. Softw. Eng. Methodol. 27, 3 (2018).Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Frank van der Linden, Klaus Schmid, and Eelco Rommes. 2007. Software product lines in action - the best industrial practice in product line engineering. Springer.Google ScholarGoogle Scholar
  40. Roberto Verdecchia, Philippe Kruchten, Patricia Lago, and Ivano Malavolta. 2021. Building and evaluating a theory of architectural technical debt in software-intensive systems. Journal of Systems and Software 176 (2021), 110925.Google ScholarGoogle ScholarCross RefCross Ref
  41. Daniele Wolfart, Wesley K. G. Assunção, and Jabier Martinez. 2021. Variability Debt: Characterization, Causes and Consequences. In SBQS 2021: 20th Brazilian Software Quality Symposium. 1–10. https://doi.org/10.1145/3493244.3493250Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Jesse Yli-Huumo, Andrey Maglyas, and Kari Smolander. 2016. How do software development teams manage technical debt? - An empirical study. J. Syst. and Software 120 (2016), 195–218.Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Variability Debt: A Multi-method Study

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in
        • Published in

          cover image ACM Other conferences
          SBQS '23: Proceedings of the XXII Brazilian Symposium on Software Quality
          November 2023
          391 pages
          ISBN:9798400707865
          DOI:10.1145/3629479

          Copyright © 2023 ACM

          Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 6 December 2023

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article
          • Research
          • Refereed limited

          Acceptance Rates

          Overall Acceptance Rate35of99submissions,35%
        • Article Metrics

          • Downloads (Last 12 months)17
          • Downloads (Last 6 weeks)3

          Other Metrics

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader

        HTML Format

        View this article in HTML Format .

        View HTML Format