Abstract
Technical debt (TD) is a term coined by agile software pioneer Ward Cunningham to account for the added software system effort or cost resulting from taking early software project shortcuts. Previous research on TD has extensively outlined and discussed the various consequences derived from accumulating TD and the difficulty in managing it. A review of the software engineering literature revealed that Stack Exchange question-and-answer (Q&A) websites can provide valuable, real world perspectives on a number of software engineering topics. Therefore, this study aims to observe how the TD term is utilized on Stack Exchange Q&A websites. Specifically, this study utilizes a dataset derived from three Stack Exchange Q&A websites, which are Stack Overflow (SO), Software Engineering (SE), and Project Management (PM), to retrieve and analyze 578 TD-related questions. The results unveiled that TD-related questions can be categorized into 14 different categories, a total of 636 unique tags are utilized in the acquired set of TD-related questions, and a few TD-related categories both lack accepted answers and have a longer median time to receive an accepted answer than other categories. This study’s findings highlight the TD-related challenges that are addressed by Stack Exchange Q&A website users, which may prove beneficial in steering future TD-related efforts.
Similar content being viewed by others
Data Availability
The datasets generated during and/or analysed during the current study are available in the Open Science Foundation (OSF), https://t.ly/_Fqi
Notes
References
Abdellatif A, Costa D, Badran K, Abdalkareem R, Shihab E (2020) Challenges in chatbot development: A study of stack overflow posts. In: Proceedings of the 17th international conference on mining software repositories, MSR ’20. https://doi.org/10.1145/3379597.3387472. Association for Computing Machinery, New York, pp 174–185
Abdi H (2007) The kendall rank correlation coefficient. Encycl Meas Stat 2:508–510
Ahmed I, Brindescu C, Mannan UA, Jensen C, Sarma A (2017) An empirical examination of the relationship between code smells and merge conflicts. In: 2017 ACM/IEEE international symposium on empirical software engineering and measurement (ESEM). https://doi.org/10.1109/ESEM.2017.12, pp 58–67
Ahmed S, Bagherzadeh M (2018) What do concurrency developers ask about? A large-scale study using stack overflow. In: Proceedings of the 12th ACM/IEEE international symposium on empirical software engineering and measurement, ESEM ’18. https://doi.org/10.1145/3239235.3239524. Association for Computing Machinery, New York
Allman E (2012) Managing technical debt. Commun ACM 55 (5):50–55. https://doi.org/10.1145/2160718.2160733
Alves NS, Mendes TS, de Mendonça MG, Spínola RO, Shull F, Seaman C (2016) Identification and management of technical debt: A systematic mapping study. Inf Softw Technol 70:100–121. https://doi.org/10.1016/j.infsof.2015.10.008
Ampatzoglou A, Ampatzoglou A, Chatzigeorgiou A, Avgeriou P (2015) The financial aspect of managing technical debt. Inf Softw Technol 64 (C):52–73. https://doi.org/10.1016/j.infsof.2015.04.001
Avgeriou P, Kruchten P, Ozkaya I, Seaman C (2016) Managing technical debt in software engineering (Dagstuhl Seminar 16162). Dagstuhl Rep 6 (4):110–138. https://doi.org/10.4230/DagRep.6.4.110
Avgeriou PC, Taibi D, Ampatzoglou A, Arcelli Fontana F, Besker T, Chatzigeorgiou A, Lenarduzzi V, Martini A, Moschou A, Pigazzini I, Saarimaki N, Sas DD, de Toledo SS, Tsintzira AA (2021) An overview and comparison of technical debt measurement tools. IEEE Softw 38(3):61–71. https://doi.org/10.1109/MS.2020.3024958
Bajaj K, Pattabiraman K, Mesbah A (2014) Mining questions asked by web developers. In: Proceedings of the 11th working conference on mining software repositories, MSR 2014. Association for Computing Machinery, New York, pp 112–121, DOI https://doi.org/10.1145/2597073.2597083, (to appear in print)
Baltes S, Dumani L, Treude C, Diehl S (2018) Sotorrent: Reconstructing and analyzing the evolution of stack overflow posts. In: Proceedings of the 15th international conference on mining software repositories, MSR ’18. https://doi.org/10.1145/3196398.3196430. Association for Computing Machinery, New York, pp 319–330
Barua A, Thomas SW, Hassan AE (2014) What are developers talking about? An analysis of topics and trends in stack overflow. Empir Softw Engg 19 (3):619–654. https://doi.org/10.1007/s10664-012-9231-y
Behutiye WN, Rodríguez P, Oivo M, Tosun A (2017) Analyzing the concept of technical debt in the context of agile software development: A systematic literature review. Inf Softw Technol 82:139–158. https://doi.org/10.1016/j.infsof.2016.10.004
Biffl S, Aurum A, Boehm B, Erdogmus H, Grünbacher P (2006) Value-based software engineering. Springer Science & Business Media, Berlin
Codabux Z, Williams B (2013) Managing technical debt: An industrial case study. In: 2013 4th International workshop on managing technical debt (MTD). https://doi.org/10.1109/MTD.2013.6608672, pp 8–15
Cruzes DS, Dyba T (2011) Recommended steps for thematic synthesis in software engineering. In: 2011 international symposium on empirical software engineering and measurement. https://doi.org/10.1109/ESEM.2011.36, pp 275–284
Cunningham W (1992) The WyCash portfolio management system. SIGPLAN OOPS Mess 4(2):29–30. https://doi.org/10.1145/157710.157715
Curtis B, Sappidi J, Szynkarski A (2012) Estimating the principal of an application’s technical debt. IEEE Softw 29(6):34–42. https://doi.org/10.1109/MS.2012.156
Erdogmus H (1999) Comparative evaluation of software development strategies based on net present value. In: International workshop on economics-driven software engineering research EDSER, p 1
Fernández-Sánchez C, Garbajosa J, Yagüe A, Perez J (2017) Identification and analysis of the elements required to manage technical debt by means of a systematic mapping study. J Syst Softw 124(C):22–38. https://doi.org/10.1016/j.jss.2016.10.018
Fowler M (2018) Refactoring: improving the design of existing code. Addison-Wesley Professional, Reading
Fukunaga K (2013) Introduction to statistical pattern recognition. Elsevier, New York
Gama E, Paixao M, Freire ESS, Cortés MI (2019) Technical debt’s state of practice on stack overflow: A preliminary study. In: Proceedings of the XVIII Brazilian symposium on software quality, SBQS’19. https://doi.org/10.1145/3364641.3364668. Association for Computing Machinery, New York, pp 228–233
Gama E, Freire S, Mendonça M, Spínola RO, Paixao M, Cortés MI (2020) Using stack overflow to assess technical debt identification on software projects. In: Proceedings of the XXXIV Brazilian symposium on software engineering, SBES ’20. https://doi.org/10.1145/3422392.3422429. Association for Computing Machinery, New York, pp 730–739
Gisev N, Bell JS, Chen TF (2013) Interrater agreement and interrater reliability: Key concepts, approaches, and applications. Res Soc Adm Pharm 9 (3):330–338. https://doi.org/10.1016/j.sapharm.2012.04.004
Guo Y, Seaman C (2011) A portfolio approach to technical debt management. In: Proceedings of the 2nd workshop on managing technical debt, MTD ’11. https://doi.org/10.1145/1985362.1985370. Association for Computing Machinery, New York, pp 31–34
Guo Y, Seaman C, Gomes R, Cavalcanti A, Tonin G, Da Silva FQB, Santos ALM, Siebra C (2011) Tracking technical debt — an exploratory case study. In: 2011 27th IEEE international conference on software maintenance (ICSM). https://doi.org/10.1109/ICSM.2011.6080824, pp 528–531
Guo Y, Spínola RO, Seaman C (2016) Exploring the costs of technical debt management — a case study. Empirical Softw Engg 21(1):159–182. https://doi.org/10.1007/s10664-014-9351-7
Han J, Shihab E, Wan Z, Deng S, Xia X (2020) What do programmers discuss about deep learning frameworks. Empir Softw Eng 25(4):2694–2747. https://doi.org/10.1007/s10664-020-09819-6
Haque MU, Iwaya LH, Babar MA (2020) Challenges in docker development: A large-scale study using stack overflow. In: Proceedings of the 14th ACM / IEEE international symposium on empirical software engineering and measurement (ESEM), ESEM ’20. https://doi.org/10.1145/3382494.3410693. Association for Computing Machinery, New York
Izurieta C, Vetrò A, Zazworka N, Cai Y, Seaman C, Shull F (2012) Organizing the technical debt landscape. In: 2012 3rd international workshop on managing technical debt (MTD). https://doi.org/10.1109/MTD.2012.6225995, pp 23–26
Kitchenham BA, Budgen D, Brereton P (2015) Evidence-based software engineering and systematic reviews, vol 4. CRC Press, Boca Raton
Kruchten P, Nord RL, Ozkaya I (2012) Technical debt: From metaphor to theory and practice. IEEE Softw 29(6):18–21. https://doi.org/10.1109/MS.2012.167
Landis JR, Koch GG (1977) The measurement of observer agreement for categorical data. Biometrics, 159–174
Lenarduzzi V, Orava T, Saarimäki N, Systa K, Taibi D (2019) An empirical study on technical debt in a finnish SME. In: 2019 ACM/IEEE international symposium on empirical software engineering and measurement (ESEM). https://doi.org/10.1109/ESEM.2019.8870169, pp 1–6
Li Z, Avgeriou P, Liang P (2015) A systematic mapping study on technical debt and its management. J Syst Softw 101(C):193–220. https://doi.org/10.1016/j.jss.2014.12.027
M Bomfim M, A Santos V (2017) Strategies for reducing technical debt in agile teams. In: Silva da Silva T, Estácio B, Kroll J, Mantovani Fontana R (eds) Agile methods. Springer International Publishing, Cham, pp 60–71
Malhotra R (2016) Empirical research in software engineering: concepts, analysis, and applications. CRC Press, Boca Raton
Martini A, Bosch J, Chaudron M (2014) Architecture technical debt: Understanding causes and a qualitative model. In: 2014 40th EUROMICRO conference on software engineering and advanced applications. https://doi.org/10.1109/SEAA.2014.65, pp 85–92
de Mello RM, Oliveira R, Garcia A (2017) On the influence of human factors for identifying code smells: A multi-trial empirical study. In: 2017 ACM/IEEE international symposium on empirical software engineering and measurement (ESEM). https://doi.org/10.1109/ESEM.2017.13, pp 68–77
Morgenthaler JD, Gridnev M, Sauciuc R, Bhansali S (2012) Searching for build debt: Experiences managing technical debt at Google. In: Proceedings of the 3rd international workshop on managing technical debt, MTD ’12. IEEE Press, pp 1–6
Nord RL, Ozkaya I, Kruchten P, Gonzalez-Rojas M (2012) In search of a metric for managing architectural technical debt. In: 2012 Joint working IEEE/IFIP conference on software architecture and european conference on software architecture. https://doi.org/10.1109/WICSA-ECSA.212.17, pp 91–100
Parnas DL (1994) Software aging. In: Proceedings of the 16th international conference on software engineering, ICSE ’94. IEEE Computer Society Press, Washington, pp 279–287
Puth MT, Neuhäuser M, Ruxton GD (2015) Effective use of Spearman’s and Kendall’s correlation coefficients for association between two measured traits. Anim Behav 102:77–84. https://doi.org/10.1016/j.anbehav.2015.01.010
Ralph P, Ali Nb, Baltes S, Bianculli D, Diaz J, Dittrich Y, Ernst N, Felderer M, Feldt R, Filieri A et al (2020) Empirical standards for software engineering research. arXiv:201003525
Rios N, de Mendonça Neto MG, Spínola RO (2018) A tertiary study on technical debt: Types, management strategies, research trends, and base information for practitioners. Inf Softw Technol 102:117–145. https://doi.org/10.1016/j.infsof.2018.05.010
Rios N, Spínola RO, Mendonça M, Seaman C (2020) The practitioners’ point of view on the concept of technical debt and its causes and consequences: A design for a global family of industrial surveys and its first results from Brazil. Empirical Softw Engg 25(5):3216–3287. https://doi.org/10.1007/s10664-020-09832-9
Rosen C, Shihab E (2016) What are mobile developers asking about? a large scale study using stack overflow. Empir Softw Engg 21(3):1192–1223. https://doi.org/10.1007/s10664-015-9379-3
Rubin K (2012) Essential scrum: A practical guide to the most popular agile process (Addison-Wesley Signature Series (Cohn)). Addison-Wesley Professional, Reading
Runeson P, Host M, Rainer A, Regnell B (2012) Case study research in software engineering: Guidelines and examples. Wiley, New York
Schober P, Boer C, Schwarte LA (2018) Correlation coefficients: appropriate use and interpretation. Anesth Analg 126(5):1763–1768. https://doi.org/10.1213/ANE.0000000000002864
Silva CC, Galster M, Gilson F (2021) Topic modeling in software engineering research. Empir Softw Engg 26(6). https://doi.org/10.1007/s10664-021-10026-0
Spínola RO, Vetrò A, Zazworka N, Seaman C, Shull F (2013) Investigating technical debt folklore: Shedding some light on technical debt opinion. In: 2013 4th international workshop on managing technical debt (MTD). https://doi.org/10.1109/MTD.2013.6608671, pp 1–7
Sterling C (2010) Managing software debt: Building for inevitable change. Addison-Wesley Professional, Reading
Suryanarayana G, Samarthyam G, Sharma T (2014) Refactoring for software design smells: managing technical debt. Morgan Kaufmann, San Mateo
Tom E, Aurum A, Vidgen R (2013) An exploration of technical debt. J Syst Softw 86(6):1498–1516. https://doi.org/10.1016/j.jss.2012.12.052
Yang XL, Lo D, Xia X, Wan ZY, Sun JL (2016) What security questions do developers ask? a large-scale study of stack overflow posts. J Comput Sci Technol 31(5):910–924. https://doi.org/10.1007/s11390-016-1672-0
Yin RK (2009) Case study research: Design and methods, vol 5. Sage, Newbury Park
Zazworka N, Seaman C, Shull F (2011a) Prioritizing design debt investment opportunities. In: Proceedings of the 2nd workshop on managing technical debt, MTD ’11. https://doi.org/10.1145/1985362.1985372. Association for Computing Machinery, New York, pp 39–42
Zazworka N, Shaw MA, Shull F, Seaman C (2011b) Investigating the impact of design debt on software quality. In: Proceedings of the 2nd workshop on managing technical debt, MTD ’11. https://doi.org/10.1145/1985362.1985366. Association for Computing Machinery, New York, pp 17–23
Zou J, Xu L, Yang M, Zhang X, Yang D (2017) Towards comprehending the non-functional requirements through developers eyes. Inf Softw Technol 84(C):19–32. https://doi.org/10.1016/j.infsof.2016.12.003
Acknowledgements
This research project was supported by a grant from the “Research Center of College of Computer and Information Sciences, Deanship of Scientific Research, King Saud University”.
Author information
Authors and Affiliations
Corresponding author
Ethics declarations
Conflict of Interests
The authors declare no potential conflicts of interest.
Additional information
Communicated by: Marco Torchiano
Publisher’s note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.
About this article
Cite this article
Alfayez, R., Ding, Y., Winn, R. et al. What is asked about technical debt (TD) on Stack Exchange question-and-answer (Q&A) websites? An observational study. Empir Software Eng 28, 35 (2023). https://doi.org/10.1007/s10664-022-10269-5
Accepted:
Published:
DOI: https://doi.org/10.1007/s10664-022-10269-5