Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/3379597.3387459acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

Beyond the Code: Mining Self-Admitted Technical Debt in Issue Tracker Systems

Published: 18 September 2020 Publication History

Abstract

Self-admitted technical debt (SATD) is a particular case of Technical Debt (TD) where developers explicitly acknowledge their sub-optimal implementation decisions. Previous studies mine SATD by searching for specific TD-related terms in source code comments. By contrast, in this paper we argue that developers can admit technical debt by other means, e.g., by creating issues in tracking systems and labelling them as referring to TD. We refer to this type of SATD as issue-based SATD or just SATD-I. We study a sample of 286 SATD-I instances collected from five open source projects, including Microsoft Visual Studio and GitLab Community Edition. We show that only 29% of the studied SATD-I instances can be tracked to source code comments. We also show that SATD-I issues take more time to be closed, compared to other issues, although they are not more complex in terms of code churn. Besides, in 45% of the studied issues TD was introduced to ship earlier, and in almost 60% it refers to DESIGN flaws. Finally, we report that most developers pay SATD-I to reduce its costs or interests (66%). Our findings suggest that there is space for designing novel tools to support technical debt management, particularly tools that encourage developers to create and label issues containing TD concerns.

References

[1]
Nicolli S.R. Alves, Thiago S. Mendes, Manoel G. de Mendonça, Rodrigo O. Spínola, Forrest Shull, and Carolyn Seaman. 2016. Identification and Management of Technical Debt. Information and Software Technology 70, C (2016), 100--121.
[2]
Gabriele Bavota and Barbara Russo. 2016. A Large-Scale Empirical Study on Self-Admitted Technical Debt. In 13th Working Conference on Mining Software Repositories (MSR). 315--326.
[3]
Stephany Bellomo, Robert L. Nord, Ipek Ozkaya, and Mary Popeck. 2016. Got Technical Debt? Surfacing Elusive Technical Debt in Issue Trackers. In 13th International Conference on Mining Software Repositories (MSR). 327--338.
[4]
Hudson Borges, Andre Hora, and Marco Tulio Valente. 2016. Understanding the Factors that Impact the Popularity of GitHub Repositories. In 32nd IEEE International Conference on Software Maintenance and Evolution (ICSME). 334--344.
[5]
Ward Cunningham. 1992. The WyCash Portfolio Management System. In 7th Object-oriented Programming Systems, Languages, and Applications (OOPSLA). 29--30.
[6]
Ke Dai and Philippe Kruchten. 2017. Detecting Technical Debt through Issue Trackers. In 5th International Workshop on Quantitative Approaches to Software Quality (QuASoQ). 59--65.
[7]
Neil A. Ernst, Stephany Bellomo, Ipek Ozkaya, Robert L. Nord, and Ian Gorton. 2015. Measure It? Manage It? Ignore It? Software Practitioners and Technical Debt. In 10th Joint Meeting on Foundations of Software Engineering (FSE). 50--60.
[8]
Fahmid M. Fahid, Zhe Yu, and Tim Menzies. 2019. Better Technical Debt Detection via SURVEYing. arXiv preprint arXiv:1905.08297 (2019).
[9]
MÃąrio AndrÃl' Farias, JosÃl' AmÃćncio Santos, Marcos Kalinowski, Manoel MendonÃğa, and Rodrigo Oliveira Spinola. 2016. Investigating the Identification of Technical Debt through Code Comment Analysis. In 18th International Conference on Enterprise Information Systems (ICEIS). 284--309.
[10]
Jernej Flisar and Vili Podgorelec. 2019. Identification of Self-Admitted Technical Debt Using Enhanced Feature Selection Based on Word Embedding. IEEE Access 7, 1 (2019), 106475--106494.
[11]
Martin Fowler. [n.d.]. TechnicalDebtQuadrant. https://martinfowler.com/bliki/TechnicalDebtQuadrant. [accessed 10-October-2019].
[12]
Qiao Huang, Emad Shihab, Xin Xia, David Lo, and Shanping Li. 2018. Identifying self-admitted technical debt in open source projects using text mining. Empirical Software Engineering 23, 1 (2018), 418--451.
[13]
Yasutaka Kamei, Everton Da Silva Maldonado, Emad Shihab, and Naoyasu Ubayashi. 2016. Using analytics to quantify the interest of self-admitted technical debt. In 1st International Workshop on Technical Debt Analytics (TDA). 68--71.
[14]
Philippe Kruchten, Robert L. Nord, and Ipek Ozkaya. 2012. Technical Debt: from Metaphor to Theory and Practice. IEEE Software 29, 6 (2012), 18--21.
[15]
Zengyang Li, Paris Avgeriou, and Peng Liang. 2015. A Systematic Mapping Study on Technical Debt and Its Management. Journal of Systems and Software (JSS) 101, C (2015), 193--220.
[16]
Erin Lim, Nitin Taksande, and Carolyn Seaman. 2012. A Balancing Act: what Software Practitioners Have to Say About Technical Debt. IEEE Software 29, 6 (2012), 22--27.
[17]
Zhongxin Liu, Qiao Huang, Xin Xia, Emad Shihab, David Lo, and Shanping Li. 2018. SATD Detector: A Text-Mining-Based Self-Admitted Technical Debt Detection Tool. In 40th International Conference on Software Engineering: Companion (ICSE-Companion). 9--12.
[18]
Everton Da Silva Maldonado, Rabe Abdalkareem, Emad Shihab, and Alexander Serebrenik. 2017. An Empirical Study on the Removal of Self-Admitted Technical Debt. In 33rd International Conference on Software Maintenance and Evolution (ICSME). 238--248.
[19]
Everton Da Silva Maldonado and Emad Shihab. 2015. Detecting and quantifying different types of self-admitted technical Debt. In 7th International Workshop on Managing Technical Debt (MTD). 9--15.
[20]
Everton Da Silva Maldonado, Emad Shihab, and Nikolaos Tsantalis. 2017. Using Natural Language Processing to Automatically Detect Self-Admitted Technical Debt. IEEE Transactions on Software Engineering 43, 11 (2017), 1044--1062.
[21]
Aniket Potdar and Emad Shihab. 2014. An Exploratory Study on Self-Admitted Technical Debt. In 30th International Conference on Software Maintenance and Evolution (ICSME). 91--100.
[22]
Xiaoxue Ren, Zhenchang Xing, Xin Xia, David Lo, Xinyu Wang, and John Grundy. 2019. Neural Network-based Detection of Self-Admitted Technical Debt: from Performance to Explainability. ACM Transactions on Software Engineering and Methodology 28, 3 (2019), 1--45.
[23]
Nicolli Rios, Manoel Gomes de MendonÃğa Neto, and Rodrigo Oliveira SpÃŋnola. 2018. A tertiary study on technical debt: types, management strategies, research trends, and base information for practitioners. Information and Software Technology 102, 1 (2018), 117--145.
[24]
Giancarlo Sierra, Emad Shihab, and Yasutaka Kamei. 2019. A survey of self-admitted technical debt. Journal of Systems and Software 152, 1 (2019), 70--82.
[25]
Giancarlo Sierra, Ahmad Tahmid, Emad Shihab, and Nikolaos Tsantalis. 2019. Is Self-Admitted Technical Debt a Good Indicator of Architectural Divergences?. In 26th International Conference on Software Analysis, Evolution and Reengineering (SANER). 534--543.
[26]
Hudson Silva and Marco Tulio Valente. 2018. What's in a GitHub Star? Understanding Repository Starring Practices in a Social Coding Platform. Journal of Systems and Software 146 (2018), 112--129.
[27]
Marcelino Silva, Ricardo Terra, and Marco Tulio Valente. 2016. Does Technical Debt Lead to the Rejection of Pull Requests?. In 12nd Brazilian Symposium on Information Systems (SBSI). 1--7.
[28]
Donna Spencer. 2009. Card Sorting: Designing Usable Categories. Rosenfeld Media.
[29]
Igor Steinmacher, Tayana Uchoa Conte, Christoph Treude, and Marco Aurélio Gerosa. 2016. Overcoming Open Source Project Entry Barriers with a Portal for Newcomers. In 38th International Conference on Software Engineering (ICSE). 273--284.
[30]
Margaret-Anne Storey, Jody Ryall, R. Ian Bull, Del Myers, and Janice Singer. 2008. TODO or to Bug: Exploring How Task Annotations Play a Role in the Work Practices of Software Developers. In 30th International Conference on Software Engineering(ICSE). 251--260.
[31]
Sultan Wehaibi, Emad Shihab, and Latifa Guerrouj. 2016. Examining the Impact of Self-Admitted Technical Debt on Software Quality. In 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER). 179--188.
[32]
Fiorella Zampetti, Alexander Serebrenik, and Massimiliano Di Penta. 2018. Was Self-Admitted Technical Debt Removal a Real Removal? An In-Depth Perspective. In 15th International Conference on Mining Software Repositories (MSR). 526--536.
[33]
Nico Zazworka, Michele A. Shaw, Forrest Shull, and Carolyn Seaman. 2011. Investigating the Impact of Design Debt on Software Quality. In 2nd Workshop on Managing Technical Debt (MTD). 17--23.
[34]
Nico Zazworka, Rodrigo O. Spínola, Antonio Vetro', Forrest Shull, and Carolyn Seaman. 2013. A Case Study on Effectively Identifying Technical Debt. In 17th International Conference on Evaluation and Assessment in Software Engineering (EASE). 42--47.

Cited By

View all
  • (2024)What Makes a Good TODO Comment?ACM Transactions on Software Engineering and Methodology10.1145/366481133:6(1-30)Online publication date: 28-Jun-2024
  • (2024)SATDAUG - A Balanced and Augmented Dataset for Detecting Self-Admitted Technical DebtProceedings of the 21st International Conference on Mining Software Repositories10.1145/3643991.3644880(289-293)Online publication date: 15-Apr-2024
  • (2024)Are Prompt Engineering and TODO Comments Friends or Foes? An Evaluation on GitHub CopilotProceedings of the IEEE/ACM 46th International Conference on Software Engineering10.1145/3597503.3639176(1-13)Online publication date: 20-May-2024
  • Show More Cited By

Index Terms

  1. Beyond the Code: Mining Self-Admitted Technical Debt in Issue Tracker Systems

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    MSR '20: Proceedings of the 17th International Conference on Mining Software Repositories
    June 2020
    675 pages
    ISBN:9781450375177
    DOI:10.1145/3379597
    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 ACM 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]

    Sponsors

    In-Cooperation

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 18 September 2020

    Permissions

    Request permissions for this article.

    Check for updates

    Qualifiers

    • Research-article
    • Research
    • Refereed limited

    Conference

    MSR '20
    Sponsor:

    Upcoming Conference

    ICSE 2025

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)88
    • Downloads (Last 6 weeks)12
    Reflects downloads up to 19 Nov 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)What Makes a Good TODO Comment?ACM Transactions on Software Engineering and Methodology10.1145/366481133:6(1-30)Online publication date: 28-Jun-2024
    • (2024)SATDAUG - A Balanced and Augmented Dataset for Detecting Self-Admitted Technical DebtProceedings of the 21st International Conference on Mining Software Repositories10.1145/3643991.3644880(289-293)Online publication date: 15-Apr-2024
    • (2024)Are Prompt Engineering and TODO Comments Friends or Foes? An Evaluation on GitHub CopilotProceedings of the IEEE/ACM 46th International Conference on Software Engineering10.1145/3597503.3639176(1-13)Online publication date: 20-May-2024
    • (2024)Self-Admitted Technical Debts Identification: How Far Are We?2024 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER)10.1109/SANER60148.2024.00087(804-815)Online publication date: 12-Mar-2024
    • (2024)An empirical study on the effectiveness of large language models for SATD identification and classificationEmpirical Software Engineering10.1007/s10664-024-10548-329:6Online publication date: 1-Oct-2024
    • (2024)Quantifying and characterizing clones of self-admitted technical debt in build systemsEmpirical Software Engineering10.1007/s10664-024-10449-529:2Online publication date: 26-Feb-2024
    • (2023)Technical Debt Classification in Issue Trackers using Natural Language Processing based on Transformers2023 ACM/IEEE International Conference on Technical Debt (TechDebt)10.1109/TechDebt59074.2023.00017(92-101)Online publication date: May-2023
    • (2023)An Exploratory Study on the Occurrence of Self-Admitted Technical Debt in Android Apps2023 ACM/IEEE International Conference on Technical Debt (TechDebt)10.1109/TechDebt59074.2023.00007(1-10)Online publication date: May-2023
    • (2023)Self-Admitted Technical Debt in the Embedded Systems Industry: An Exploratory Case StudyIEEE Transactions on Software Engineering10.1109/TSE.2022.322437849:4(2545-2565)Online publication date: 1-Apr-2023
    • (2023)Analyzing the Effects of CI/CD on Open Source Repositories in GitHub and GitLab2023 IEEE/ACIS 21st International Conference on Software Engineering Research, Management and Applications (SERA)10.1109/SERA57763.2023.10197778(176-181)Online publication date: 23-May-2023
    • Show More Cited By

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media