skip to main content
10.1145/3422392.3422429acmotherconferencesArticle/Chapter ViewAbstractPublication PagessbesConference Proceedingsconference-collections
research-article

Using Stack Overflow to Assess Technical Debt Identification on Software Projects

Authors Info & Claims
Published:21 December 2020Publication History

ABSTRACT

Context. The accumulation of technical debt (TD) items can lead to risks in software projects, such a gradual decrease in product quality, difficulties in their maintenance, and ultimately the cancellation of the project. To mitigate these risks, developers need means to identify TD items, which enable better documentation and improvements in TD management. Recent literature has proposed different indicator-based strategies for TD identification. However, there is limited empirical evidence to support that developers use these indicators to identify TD in practice. In this context, data from Q&A websites, such as Stack Overflow (SO), have been extensively leveraged in recent studies to investigate software engineering practices from a developers' point of view. Goal. This paper seeks to investigate, from the point of view of practitioners, how developers commonly identify TD items in their projects. Method. We mined, curated, and selected a total of 140 TD-related discussions on SO, from which we performed both quantitative and qualitative analyses. Results. We found that SO's practitioners commonly discuss TD identification, revealing 29 different low-level indicators for recognizing TD items on code, infrastructure, architecture, and tests. We grouped low-level indicators based on their themes, producing an aggregated set of 13 distinct high-level indicators. We then classified all low- and high-level indicators into three different categories according to which type of debt each of them is meant to identify. Conclusions. We organize the empirical evidence on the low- and high-level indicators and their relationship to types of TD in a conceptual framework, which may assist developers and serve as guidance for future research, shedding new light on TD identification state-of-practice.

References

  1. Muhammad Ahasanuzzaman, Muhammad Asaduzzaman, Chanchal K. Roy, and Kevin A. Schneider. 2016. Mining duplicate questions in stack overflow. In Proceedings of the 13th International Workshop on Mining Software Repositories. ACM Press, New York, New York, USA, 402--412.Google ScholarGoogle Scholar
  2. Sebastian Baltes, Christoph Treude, and Stephan Diehl. 2019. Sotorrent: Studying the origin, evolution, and usage of stack overflow code snippets. In Proceedings of the 16th International Conference on Mining Software Repositories. IEEE Press.Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Alan Bandeira, Carlos Alberto Medeiros, Matheus Paixao, and Paulo Henrique Maia. 2019. We Need to Talk about Microservices: an Analysis from the Discussions on StackOverflow. International Conference on Mining Software Repositories 5 (2019), 255--259.Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. D. Falessi, M. A. Shaw, F. Shull, K. Mullen, and M. S. Keymind. 2013. Practical considerations, challenges, and requirements of tool-support for managing technical debt, Vol. 00. 16--19.Google ScholarGoogle Scholar
  5. Martin Fowler, Kent Beck, John Brant, William Opdyke, and don Roberts. 2002. Refactoring: Improving the Design of Existing Code. PEARSON EDUCATION.Google ScholarGoogle ScholarCross RefCross Ref
  6. Sávio Freire, Nicolli Rios, Boris Gutierrez, Darío Torres, Manoel Mendonça, Clemente Izurieta, Carolyn Seaman, and Rodrigo O. Spínola. 2020. Surveying Software Practitioners on Technical Debt Payment Practices and Reasons for Not Paying off Debt Items. In Proceedings of the Evaluation and Assessment in Software Engineering (EASE '20). ACM, New York, NY, USA, 210--219. https://doi.org/10.1145/3383219.3383241Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Eliakim Gama, Sávio Freire, Manoel Mendonça, Rodrigo O. Spínola, Matheus Paixao, and Mariela I. Cortés. 2020. Replication package for the paper: "Using Stack Overflow to Assess Technical Debt Identification on Software Projects". https://zenodo.org/record/3998025Google ScholarGoogle Scholar
  8. Eliakim Gama, Matheus Paixao, Emmanuel Sávio Silva Freire, and Mariela Inés Cortés. 2019. Technical Debt's State of Practice on Stack Overflow. In Proceedings of the XVIII Brazilian Symposium on Software Quality - SBQS'19. ACM Press, New York, New York, USA, 228--233.Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Yuepu Guo, Rodrigo Oliveira Spínola, and Carolyn Seaman. 2016. Exploring the Costs of Technical Debt Management --- a Case Study. Empirical Softw. Engg. 21, 1 (2016), 159--182.Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. David Kavaler, Daryl Posnett, Clint Gibler, Hao Chen, Premkumar Devanbu, and Vladimir Filkov. 2013. Using and asking: Apis used in the android market and asked about in stackoverflow. In International Conference on Social Informatics. Springer, 405--418.Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Mario Linares-Vásquez, Gabriele Bavota, Massimiliano Di Penta, Rocco Oliveto, and Denys Poshyvanyk. 2014. How Do API Changes Trigger Stack Overflow Discussions? A Study on the Android SDK. In Proceedings of the 22nd International Conference on Program Comprehension (Hyderabad, India) (ICPC 2014). Association for Computing Machinery, New York, NY, USA, 83--94. https://doi.org/10.1145/2597008.2597155Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. R.C. Lupton and J.M. Allwood. 2017. Hybrid Sankey diagrams: Visual analysis of multidimensional data for understanding resource use. Resources, Conservation and Recycling 124 (2017), 141--151. https://doi.org/10.1016/j.resconrec.2017.05.002Google ScholarGoogle ScholarCross RefCross Ref
  13. Mika Mäntylä and Casper Lassenius. 2006. Subjective evaluation of software evolvability using code smells: An empirical study. Empirical Software Engineering 11, 3 (2006), 395--431. http://dblp.uni-trier.de/db/journals/ese/ese11.html#MantylaL06Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. I. Ozkaya, R. L. Nord, and P. Kruchten. 2012. Technical Debt: From Metaphor to Theory and Practice. IEEE Software 29 (2012), 18--21.Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Nicolli Rios, Manoel Mendonça, and Rodrigo O. Spínola. 2018. A tertiary study on technical debt: Types, management strategies, research trends, and base information for practitioners. Information and Software Technology 102 (2018), 117--145.Google ScholarGoogle ScholarCross RefCross Ref
  16. Nicolli Rios, Thiago S.Mendes, Manoel Mendonça, Rodrigo O. Spínola, Forrest Shull, and Carolyn Seaman. 2016. Identification and management of technical debt: A systematic mapping study. 70 (2016), 100--121.Google ScholarGoogle Scholar
  17. Christoffer Rosen and Emad Shihab. 2016. What Are Mobile Developers Asking about? A Large Scale Study Using Stack Overflow. Empirical Softw. Engg. 21, 3 (June 2016), 1192--1223. https://doi.org/10.1007/s10664-015-9379-3Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Carolyn B. Seaman. 1999. Qualitative Methods in Empirical Studies of Software Engineering. IEEE Trans. Softw. Eng. 25, 4 (July 1999), 557--572. https://doi.org/10.1109/32.799955Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. StackOverflow. 2020. Stack Overflow Annual Developer Survey. https://stackoverflow.com/help/privileges Accessed: 2020-06-08.Google ScholarGoogle Scholar
  20. Anselm L. Strauss and Juliet M. Corbin. 1998. Basics of qualitative research: techniques and procedures for developing grounded theory. Sage Publications, Thousand Oaks, Calif. XIII, 312 s pages.Google ScholarGoogle Scholar
  21. Amjed Tahir, Aiko Yamashita, Sherlock Licorish, Jens Dietrich, and Steve Counsell. 2018. Can You Tell Me If It Smells? A Study on How Developers Discuss Code Smells and Anti-Patterns in Stack Overflow. In Proceedings of the 22nd International Conference on Evaluation and Assessment in Software Engineering 2018 (Christchurch, New Zealand) (EASE'18). Association for Computing Machinery, New York, NY, USA, 68--78. https://doi.org/10.1145/3210459.3210466Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Claes Wohlin, Per Runeson, Martin Höst, Magnus C Ohlsson, Björn Regnell, and Anders Wesslén. 2012. Experimentation in software engineering. Springer Science & Business Media.Google ScholarGoogle ScholarCross RefCross Ref

Index Terms

  1. Using Stack Overflow to Assess Technical Debt Identification on Software Projects

      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
        SBES '20: Proceedings of the XXXIV Brazilian Symposium on Software Engineering
        October 2020
        901 pages
        ISBN:9781450387538
        DOI:10.1145/3422392

        Copyright © 2020 ACM

        © 2020 Association for Computing Machinery. ACM acknowledges that this contribution was authored or co-authored by an employee, contractor or affiliate of a national government. As such, the Government retains a nonexclusive, royalty-free right to publish or reproduce this article, or to allow others to do so, for Government purposes only.

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 21 December 2020

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article
        • Research
        • Refereed limited

        Acceptance Rates

        Overall Acceptance Rate147of427submissions,34%

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader