Skip to main content
Log in

The temporality of technical debt introduction on new code and confounding factors

  • Published:
Software Quality Journal Aims and scope Submit manuscript

Abstract

Code Technical Debt (TD) is intentionally or unintentionally created when developers introduce inefficiencies in the codebase. This can be attributed to various reasons such as heavy workload, tight delivery schedule, or developers’ lack of experience. Since a software system grows mostly through the addition of new code, it is interesting to study how TD fluctuates along this process. Specifically, in this paper, we investigate: (a) the temporality of code TD introduction in new code, i.e., whether the introduction of TD is stable across the lifespan of the project, or if its evolution presents spikes; and (b) the relation of TD introduction to the development team’s workload in a given period, as well as to the experience of the development team. To answer these questions, we have performed a case study on 47 open-source projects from two well-known ecosystems (Apache and Eclipse) as well as additional isolated projects from GitHub (not selected from a specific ecosystem) and inspected the number of TD issues introduced in 6-month sliding temporal windows. The results of the study suggested that: (a) overall, the number of TD issues introduced through new code is a stable measure, although it presents spikes; and (b) the number of commits performed, as well as developers’ experience are not strongly correlated to the number of introduced TD issues.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7

Similar content being viewed by others

Notes

  1. http://www.td-survey.com/

  2. https://rules.sonarsource.com/

  3. https://www.zenodo.org/record/5082041

References

  • AlOmar, E. A., Peruma, A., Newman, C. D., Mkaouer, M. W., & Ouni, A. (2020). On the relationship between developer experience and refactoring. In Proceedings of the IEEE/ACM 42nd International Conference on Software Engineering Workshops.

  • Alves, V., Niu, N., Alves, C., & Valença, G. (2010). Requirements engineering for software product lines: A systematic literature review. Information and Software Technology, 52(8), 806–820.

    Article  Google Scholar 

  • Amanatidis, T., Mittas, N., Moschou, A., Chatzigeorgiou, A., Ampatzoglou, A., & Angelis, L. (2020). Evaluating the agreement among technical debt measurement tools: building an empirical benchmark of technical debt liabilities. Empirical Software Engineering, 25(5), 4161–4204.

    Article  Google Scholar 

  • Ampatzoglou, A., Ampatzoglou, A., Chatzigeorgiou, A., Avgeriou, P., Abrahamsson, P.,  Martini, A., Zdun, U., & Systa, K. (2016). The perception of technical debt in the embedded systems domain: an industrial case study. In 2016 IEEE 8th International Workshop on Managing Technical Debt (MTD), 9–16.

  • Arvanitou, E.-M., Ampatzoglou, A., Chatzigeorgiou, A., & Avgeriou, P. (2016). Software metrics fluctuation: a property for assisting the metric selection process. Information and Software Technology, 72, 110–124.

    Article  Google Scholar 

  • Avgeriou, P. C., Taibi, D., Ampatzoglou, A., Arcelli Fontana, F., Besker, T., Chatzigeorgiou, A., Lenarduzzi, V., Martini, A., Moschou, N., Pigazzini, I., Saarimaki, N., Sas, D. D., de Toledo, S. S., & Tsintzira, A. A. (2020). An overview and comparison of technical debt measurement tools. IEEE Software, 0.

  • Chatzigeorgiou, A., & Manakos, A. (2014). Investigating the evolution of code smells in object-oriented systems. Innovations in Systems and Software Engineering, 10(1), 3–18.

    Article  Google Scholar 

  • Dieste, O., Aranda, A. M., Uyaguari, F., Turhan, B., Tosun, A., Fucci, D., et al. (2017). Empirical evaluation of the effects of experience on code quality and programmer productivity: an exploratory study. Empirical Software Engineering, 22(5), 2457–2542.

    Article  Google Scholar 

  • Digkas, G., Ampatzoglou, A., Chatzigeorgiou, A., & Avgeriou, P. (2020). On the temporality of introducing code technical debt. In International Conference on the Quality of Information and Communications Technology, 68–82. Springer.

  • Digkas, G., Chatzigeorgiou, A. N., Ampatzoglou, A., & Avgeriou, P. C. (2020). Can clean new code reduce technical debt density. IEEE Transactions on Software Engineering, 1.

  • Digkas, G., Lungu, M., Chatzigeorgiou, A., & Avgeriou, P. (2017). The evolution of technical debt in the apache ecosystem. In European Conference on Software Architecture, 51–66. Springer.

  • Dueñas, J. C., Cuadrado, F., Santillán, M., Ruiz, J. L., et al. (2007). Apache and eclipse: Comparing open source project incubators. IEEE Software, 24(6), 90–98.

    Article  Google Scholar 

  • Falleri, J.-R., Morandat, F., Blanc, X., Martinez, M., & Monperrus, M. (2014). Fine-grained and accurate source code differencing. In Proceedings of the 29th ACM/IEEE International Conference on Automated Software Engineering, 313–324.

  • Field, A. (2013). Discovering Statistics Using IBM SPSS Statistics. Sage Publications Ltd.

  • Hassan, A. E. (2009). Predicting faults using the complexity of code changes. In 2009 IEEE 31st International Conference on Software Engineering, 78–88.

  • Kazman, R., Cai, Y., Mo, R., Feng, Q., Xiao, L., Haziyev, S., Fedak, V., & Shapochka, A. (2015). A case study in locating the architectural roots of technical debt. In 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering, 2, 179–188.

  • Krutz, D. E., Munaiah, N., Peruma, A., & Mkaouer, M. W. (2017). Who added that permission to my app? an analysis of developer permission changes in open source android apps. In 2017 IEEE/ACM 4th International Conference on Mobile Software Engineering and Systems (MOBILESoft), 165–169.

  • Lehman, M. M. (1996). Laws of software evolution revisited. In European Workshop on Software Process Technology, 108–124.

  • Letouzey, J.-L. (2012). The sqale method for evaluating technical debt. In 2012 Third International Workshop on Managing Technical Debt (MTD),  31–36.

  • 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.

    Article  Google Scholar 

  • Martini, A., Bosch, J., & Chaudron, M. (2015). Investigating architectural technical debt accumulation and refactoring over time: A multiple-case study. Information and Software Technology, 67, 237–253.

    Article  Google Scholar 

  • Olbrich, S., Cruzes, D. S., Basili, V., & Zazworka, N. (2009). The evolution and impact of code smells: A case study of two open source systems. In 2009 3rd International Symposium on Empirical Software Engineering and Measurement, 390–400.

  • Pérez, B., Brito, J. P., Astudillo, H., Correal, D., Rios, N., Spínola, R. O., Mendonça, M., & Seaman, C. (2019). Familiarity, causes and reactions of software practitioners to the presence of technical debt: a replicated study in the chilean software industry. In 2019 38th International Conference of the Chilean Computer Science Society (SCCC), 1–7.

  • Peters, R., & Zaidman, A. (2012). Evaluating the lifespan of code smells using software repository mining. In 2012 16th European Conference on Software Maintenance and Reengineering, 411–416.

  • Ramač, R., Mandić, V., Taušan, N., Rios, N., de Mendonca Neto, M. G., Seaman, C., & Spínola, R. O. (2020). Common causes and effects of technical debt in serbian it: Insightd survey replication. In 2020 46th Euromicro Conference on Software Engineering and Advanced Applications (SEAA), 354–361.

  • Rios, N., Spínola, R. O., Mendonça, M., & Seaman, C. (2018). The most common causes and effects of technical debt: first results from a global family of industrial surveys. In Proceedings of the 12th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement, 1–10.

  • Runeson, P., Host, M., Rainer, A., & Regnell, B. (2012). Case study research in software engineering: Guidelines and examples. John Wiley & Sons.

  • Siegmund, J., Kästner, C., Liebig, J., Apel, S., & Hanenberg, S. (2013). Measuring and modeling programming experience. Empirical Software Engineering, 19(5), 1299–1334.

    Article  Google Scholar 

  • Tufano, M., Palomba, F., Bavota, G., Oliveto, R., Di Penta, M., De Lucia, A., & Poshyvanyk, D. (2017). When and why your code starts to smell bad (and whether the smells go away). IEEE Transactions on Software Engineering, 43(11), 1063–1088.

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Apostolos Ampatzoglou.

Additional information

Publisher’s Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Work reported in this paper has received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement No 801015 (project EXA2PRO) regarding the contribution of A. Chatzigeorgiou and A. Ampatzoglou, as well as from ITEA3 and RVO under grant agreement No. 17038 (VISDOM), regarding the contribution of P. Avgeriou.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Digkas, G., Ampatzoglou, A., Chatzigeorgiou, A. et al. The temporality of technical debt introduction on new code and confounding factors. Software Qual J 30, 283–305 (2022). https://doi.org/10.1007/s11219-021-09569-8

Download citation

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11219-021-09569-8

Keywords

Navigation