Investigating the Relationship between Technical Debt Management and Software Development Issues
Keywords:Technical Debt, Technical Debt Management, Causes of Technical Debt, Effects of Technical Debt, Process Model
Context: The presence of technical debt (TD) brings risks to software projects. Managers must continuously find a cost-benefit balance between the benefits of incurring in TD and the costs of its presence in a software project. Much attention has been given to TD related to coding issues, but other types of debt can also have impactful consequences on projects. Aims: This paper seeks to elaborate on the growing need to expand TD research to other areas of software development, by analyzing six elements related to TD management, namely: causes, effects, preventive practices, reasons for non-prevention, repayment practices, and reasons for non-repayment of TD. Method: We survey and analyze, quantitatively and qualitatively, the answers of 653 software industry practitioners on TD to investigate how the previously mentioned elements are related to coding and non-coding issues of the software development process. Results: Coding issues are commonly related to the investigated elements but, indeed, they are only part of the TD Management stage. Issues related to the project planning and management, human factors, knowledge, quality, process, requirements, verification, validation, and test, design, architecture, and the organization are also common sources of TD. We organize the results in a hump diagram and specialize it considering the point of view of practitioners that have used agile, hybrid, and traditional process models in their projects. Conclusion: The hump diagram, in combination with the detailed results, provides guidance on what to expect from the presence of TD and how to react to it considering several issues of software development. The results shed light on TD management of software elements, beyond source code related artifacts.
Alves, N.S.R., Mendes, T.S., Mendonça, M.G., Spínola, R., Shull, F., & Seaman, C. (2016). Identification and management of technical debt: A systematic mapping study. Information and Software Technology, 70, 100-121. DOI: https://doi.org/10.1016/j.infsof.2015.10.008.
Berenguer, C., Borges, A., Freire, S., Rios, N., Tausan, N., Ramac, R., Pérez, B., Castellanos, C., Correal, D., Pacheco, A., López, G., Falessi, D., Seaman, C., Mandic, V., Izurieta, C., & Spínola, R. (2021). Technical Debt is not Only about Code and We Need to be Aware about It. In Proceedings of the XX Brazilian Symposium on Software Quality (SBQS '21). ACM, New York, NY, USA, 1–12. DOI: https://doi.org/10.1145/3493244.3493285.
Besker, T., Ghanbari, H., Martini, A., & Bosch, J. (2020). The influence of technical debt on software developer morale. Journal of Systems and Software, 167. DOI: https://doi.org/10.1016/j.jss.2020.110586.
Cunningham, W. (1992). The WyCash portfolio management system. ACM SIGPLAN OOPS Messenger, 4, 2 (April 1993), 29-30. DOI: https://doi.org/10.1145/157710.157715.
Freire, S., Rios, N., Mendonça, M., Falessi, D., Seaman, C., Izurieta, C., & Spínola, R. (2020a). Actions and impediments for technical debt prevention: results from a global family of industrial surveys. In Proceedings of the 35th ACM/SIGAPP Symposium on Applied Computing, Brno, 1548–1555.
Freire, S., Rios, N., Gutierrez, B., Torres, D., Mendonça, M., Izurieta, C., Seaman, C., & Spínola, R. (2020b). 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. Trondheim, 210–219.
Freire, S., Rios, N., Perez, B., Castellanos, C., Correal, D., Ramac, R., Mandic, V., Tausan, N., Pacheco, A., López, G., Mendonça, M., Izurieta, C., Falessi, D., Seaman, C., & Spínola, R. (2021a). Pitfalls and Solutions for Technical Debt Management in Agile Software Projects. IEEE Software, vol. 38, no. 6, pp. 42-49, Nov.-Dec. 2021. DOI: 10.1109/MS.2021.3101990.
Freire, S., Rios, N., Perez, B., Castellanos, C., Correal, D., Ramac, R., Mandic, V., Tausan, N., López, G., Pacheco, A., Falessi, D., Mendonça, M., Izurieta, C., Seaman, C., & Spínola, R. (2021b). How Experience Impacts Practitioners’ Perception of Causes and Effects of Technical Debt. In Proceedings of the IEEE/ACM 13th International Workshop on Cooperative and Human Aspects of Software Engineering (CHASE). DOI: 10.1109/CHASE52884.2021.00011.
Freire, S., Rios, N., Pérez, B., Correal, D., Mendonça, M., Izurieta, C., Seaman, C., & Spínola, R. (2021c). How do technical debt payment practices relate to the effects of the presence of debt items in software projects? In Proceedings of the IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER). DOI: 10.1109/SANER50967.2021.00074.
Guo, Y., Spínola, R.O., & Seaman, C. (2016). Exploring the costs of technical debt management --- a case study. Empirical Software Engineering, 21, 1 (February 2016), 159–182. DOI: https://doi.org/10.1007/s10664-014-9351-7.
Izurieta, C., Vetrò, A., Zazworka, N., Cai, Y., Seaman, C., & Shull, F. (2012). Organizing the technical debt landscape. In Proceedings of the 3rd International Workshop on Managing Technical Debt (MTD). Zurich, 23-26. DOI: https://doi.org/10.1109/MTD.2012.6225995.
Lenarduzzi, V., Besker, T., Taibi, D., Martini, A., & Fontana, F. A. (2021). A systematic literature review on technical debt prioritization: Strategies, processes, factors, and tools. Journal of Systems and Software, 171, 110827.
Li, Z., Avgeriou, P., & Liang, P. (2015). A systematic mapping study on technical debt and its management. Journal of Systems and Software, 101, 193–220. DOI: https://doi.org/10.1016/j.jss.2014.12.027.
Lim, E., Taksande, N., & Seaman, C. (2012). A balancing act: What software practitioners have to say about technical debt. IEEE Software, 29, 6 (November 2012), 22–27. DOI: https://doi.org/10.1109/MS.2012.130.
Martini, A., Stray, V., & Moe, N.B. (2019). Technical-, social-and process debt in large-scale agile: an exploratory case-study. In Proceeding of the International Conference on Agile Software Development (pp. 112-119). Springer, Cham.
Ramač, R., Mandić, V., Taušan, N., Rios, N., Freire, S., Pérez, B., Castellanos, C., Correal, D., Pacheco, A., Lopez, G., Izurieta, C., Seaman, C., & Spinola, R. (2022). Prevalence, common causes and effects of technical debt: Results from a family of surveys with the IT industry. Journal of Systems and Software, 184, 111114. DOI: https://doi.org/10.1016/j.jss.2021.111114.
Ribeiro, L.F., Farias, M.A.F, Mendonça, M., & Spínola, R.O. (2016). Decision criteria for the payment of technical debt in software projects: A systematic mapping study. In Proceedings of the 18th International Conference on Enterprise Information Systems (ICEIS). DOI: https://doi.org/10.5220/0005914605720579
Rios, N., Freire, S., Pérez, B., Castellanos, C., Correal, D., Mendonça, M., Falessi, D., Izurieta, C., Seaman, C., & Spínola, R. (2021). On the Relationship Between Technical Debt Management and Process Models. IEEE Software.
Rios, N., Mendonça, M., & Spínola, R. (2018). A tertiary study on technical debt: Types, management strategies, research trends, and base information for practitioners. Information and Software Technology, 102, 117-145. DOI: https://doi.org/10.1016/j.infsof.2018.05.010.
Rios, N., Spínola, R.O., Mendonça, M., & Seaman, C. (2019). Supporting analysis of technical debt causes and effects with cross-company probabilistic cause-effect diagrams. In Proceedings of the IEEE/ACM International Conference on Technical Debt (TechDebt). DOI: https://doi.org/10.1109/TechDebt.2019.00009.
Rios, N., Spínola, R.O., 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 Software Engineering, 25, 3216-3287.
Saraiva, D., Neto, J. G., Kulesza, U., Freitas, G., Reboucas, R., & Coelho, R. (2021). Technical Debt Tools: A Systematic Mapping Study. In Proceedings of the 23rd International Conference on Enterprise Information Systems. DOI:10.5220/0010459100880098.
Strauss, A. & Corbin, J. (1998). Basics of qualitative research: Techniques and procedures for developing grounded theory. Sage Publications.
Tamburri, D.A., Kruchten, P., Lago, P. & van Vliet, H. (2015). Social debt in software engineering: insights from industry. Journal of Internet Services and Applications, 6(1), 1-17.
Webber, W., Moffat, A., & Zobel, J. (2010). A Similarity Measure for Indefinite Rankings. ACM Transactions on Information Systems, Vol. 28, no.4.
Wohlin, C., Runeson, P., Host, M., Ohlsson, M.C., Regnell, B., & Wesslen, A. (2012). Experimentation in software engineering: An introduction. Springer.
Zazworka, N., Vetro’, A., Izurieta, C., Wong, S., Cai, Y., Seaman, C., & Shull, F. (2014). Comparing four approaches for technical debt identification. Software Quality Journal, 22, 403–426 (2014). DOI: https://doi.org/10.1007/s11219-013-9200-8.
How to Cite
Copyright (c) 2023 Clara Berenguer, Adriano Borges, Sávio Freire, Nicolli Rios, Robert Ramač, Nebojša Taušan, Boris Pérez, Camilo Castellanos, Darío Correal, Alexia Pacheco, Gustavo López, Manoel Mendonça, Davide Falessi, Carolyn Seaman, Vladimir Mandić, Clemente Izurieta, Rodrigo Spínola
This work is licensed under a Creative Commons Attribution 4.0 International License.