Technical Debt in Continuous Software Engineering: An Overview of the State of the Art and Future Trends
Resumo
Large software companies strive to make their engineering processes fast, and agile development has been a key enabler for flexible delivery of solutions following the market needs. In this context, continuous software engineering (CSE) has emerged as a way to iteratively develop software using practices that encompass business strategy, development, and operations that are aligned with the agile methodology. However, these practices can also lead to the accumulation of technical debt (TD), which has shown to be harmful to the software in the long-term. Due to its impact, TD should be managed in the context of CSE. However, to the best of our knowledge, there is a lack of an overview of how TD has been addressed in this context. In this study, we present the state of the art of TD in CSE; for this, we scrutinized the literature and found 41 studies. Our main findings show that this field of study is relatively new, with active participation of the industry, and that most CSE activities are not addressing TD yet; therefore, presenting a number of opportunities for future research.Referências
Alves, N. S., Mendes, T. S., de Mendonça, M. G., Spínola, R. O., Shull, F., and Seaman, C. (2016). Identification and management of technical debt: A systematic mapping study. Information and Software Technology, 70:100–121.
Ampatzoglou, A., Bibi, S., Avgeriou, P., Verbeek, M., and Chatzigeorgiou, A. (2019). Identifying, categorizing and mitigating threats to validity in software engineering secondary studies. Information and Software Technology, 106:201–230.
Chen, L. (2015). Continuous delivery: Huge benefits, but challenges too. IEEE Software, 32(2):50–54.
Codabux, Z. and Williams, B. (2013). Managing technical debt: An industrial case study. In 4th International Workshop on Managing Technical Debt (MTD), page 8 – 15.
Dingsøyr, T., Nerur, S., Balijepally, V., and Moe, N. B. (2012). A decade of agile methodologies: Towards explaining agile software development. Journal of Systems and Software, 85(6):1213–1221.
Fitzgerald, B. and Stol, K.-J. (2017). Continuous software engineering: A roadmap and agenda. Journal of Systems and Software, 123:176–189.
Fontana, R. M., Wojciechowski, J., Montaño, R. R., Marczak, S., Reinehr, S., and Malucelli, A. (2022). A countrywide descriptive survey of agile software development in brazil. In Stray, V., Stol, K.-J., Paasivaara, M., and Kruchten, P., editors, Agile Processes in Software Engineering and Extreme Programming, pages 185–202, Cham. Springer International Publishing.
Kitchenham, B. A., Budgen, D., and Brereton, P. (2015). Evidence-Based Software Engineering and Systematic Reviews. Chapman & Hall/CRC.
Klotins, E. and Gorschek, T. (2022). Continuous software engineering in the wild. In Mendez, D., Wimmer, M., Winkler, D., Biffl, S., and Bergsmann, J., editors, Software Quality: The Next Big Thing in Software Engineering and Quality, pages 3–12, Cham. Springer International Publishing.
Kruchten, P., Nord, R. L., and Ozkaya, I. (2012). Technical debt: From metaphor to theory and practice. IEEE Software, 29(6):18–21.
Li, Z., Avgeriou, P., and Liang, P. (2015). A systematic mapping study on technical debt and its management. Journal of Systems and Software, 101:193–220.
Papatheocharous, E. and Andreou, A. (2013). Evidence of agile adoption in software organizations: An empirical survey. In European Conference on Software Process Improvement (EuroSPI), volume 364, pages 237–246.
Petersen, K., Feldt, R., Mujtaba, S., and Mattsson, M. (2008). Systematic mapping studies in software engineering. In 12th International Conference on Evaluation and Assessment in Software Engineering (EASE), page 68–77.
Seaman, C., Guo, Y., Zazworka, N., Shull, F., Izurieta, C., Cai, Y., and Vetro, A. (2012). Using technical debt data in decision making: Potential decision approaches. In 3rd International Workshop on Managing Technical Debt (MTD), pages 45–48.
Singh, B. and Gautam, S. (2016). The impact of software development process on software quality: A review. In 8th International Conference on Computational Intelligence and Communication Networks (CICN), pages 666–672.
Vijayasarathy, L. and Turk, D. (2012). Drivers of agile software development use: Dialectic interplay between benefits and hindrances. Information and Software Technology, 54(2):137–148.
Wieringa, R., Maiden, N., Mead, N., and Rolland, C. (2006). Requirements engineering paper classification and evaluation criteria: a proposal and a discussion. Requirements Engineering, 11(1):102–107.
Wohlin, C. (2014). Guidelines for snowballing in systematic literature studies and a replication in software engineering. In Proceedings of the 18th International Conference on Evaluation and Assessment in Software Engineering, EASE ’14, New York, NY, USA. Association for Computing Machinery.
Ampatzoglou, A., Bibi, S., Avgeriou, P., Verbeek, M., and Chatzigeorgiou, A. (2019). Identifying, categorizing and mitigating threats to validity in software engineering secondary studies. Information and Software Technology, 106:201–230.
Chen, L. (2015). Continuous delivery: Huge benefits, but challenges too. IEEE Software, 32(2):50–54.
Codabux, Z. and Williams, B. (2013). Managing technical debt: An industrial case study. In 4th International Workshop on Managing Technical Debt (MTD), page 8 – 15.
Dingsøyr, T., Nerur, S., Balijepally, V., and Moe, N. B. (2012). A decade of agile methodologies: Towards explaining agile software development. Journal of Systems and Software, 85(6):1213–1221.
Fitzgerald, B. and Stol, K.-J. (2017). Continuous software engineering: A roadmap and agenda. Journal of Systems and Software, 123:176–189.
Fontana, R. M., Wojciechowski, J., Montaño, R. R., Marczak, S., Reinehr, S., and Malucelli, A. (2022). A countrywide descriptive survey of agile software development in brazil. In Stray, V., Stol, K.-J., Paasivaara, M., and Kruchten, P., editors, Agile Processes in Software Engineering and Extreme Programming, pages 185–202, Cham. Springer International Publishing.
Kitchenham, B. A., Budgen, D., and Brereton, P. (2015). Evidence-Based Software Engineering and Systematic Reviews. Chapman & Hall/CRC.
Klotins, E. and Gorschek, T. (2022). Continuous software engineering in the wild. In Mendez, D., Wimmer, M., Winkler, D., Biffl, S., and Bergsmann, J., editors, Software Quality: The Next Big Thing in Software Engineering and Quality, pages 3–12, Cham. Springer International Publishing.
Kruchten, P., Nord, R. L., and Ozkaya, I. (2012). Technical debt: From metaphor to theory and practice. IEEE Software, 29(6):18–21.
Li, Z., Avgeriou, P., and Liang, P. (2015). A systematic mapping study on technical debt and its management. Journal of Systems and Software, 101:193–220.
Papatheocharous, E. and Andreou, A. (2013). Evidence of agile adoption in software organizations: An empirical survey. In European Conference on Software Process Improvement (EuroSPI), volume 364, pages 237–246.
Petersen, K., Feldt, R., Mujtaba, S., and Mattsson, M. (2008). Systematic mapping studies in software engineering. In 12th International Conference on Evaluation and Assessment in Software Engineering (EASE), page 68–77.
Seaman, C., Guo, Y., Zazworka, N., Shull, F., Izurieta, C., Cai, Y., and Vetro, A. (2012). Using technical debt data in decision making: Potential decision approaches. In 3rd International Workshop on Managing Technical Debt (MTD), pages 45–48.
Singh, B. and Gautam, S. (2016). The impact of software development process on software quality: A review. In 8th International Conference on Computational Intelligence and Communication Networks (CICN), pages 666–672.
Vijayasarathy, L. and Turk, D. (2012). Drivers of agile software development use: Dialectic interplay between benefits and hindrances. Information and Software Technology, 54(2):137–148.
Wieringa, R., Maiden, N., Mead, N., and Rolland, C. (2006). Requirements engineering paper classification and evaluation criteria: a proposal and a discussion. Requirements Engineering, 11(1):102–107.
Wohlin, C. (2014). Guidelines for snowballing in systematic literature studies and a replication in software engineering. In Proceedings of the 18th International Conference on Evaluation and Assessment in Software Engineering, EASE ’14, New York, NY, USA. Association for Computing Machinery.
Publicado
06/05/2024
Como Citar
CARVALHO, Lucas de Oliveira; BIAZOTTO, João Paulo; FEITOSA, Daniel; NAKAGAWA, Elisa Yumi.
Technical Debt in Continuous Software Engineering: An Overview of the State of the Art and Future Trends. In: CONGRESSO IBERO-AMERICANO EM ENGENHARIA DE SOFTWARE (CIBSE), 27. , 2024, Curitiba/PR.
Anais [...].
Porto Alegre: Sociedade Brasileira de Computação,
2024
.
p. 313-326.
DOI: https://doi.org/10.5753/cibse.2024.28456.