2020 | |
[1] | "Technical Debt Aware Estimations in Software Engineering: A Systematic Mapping Study", In e-Informatica Software Engineering Journal, vol. 14, no. 1, pp. 61–76, 2020.
DOI: , 10.37190/e-Inf200102. Download article (PDF)Get article BibTeX file |
Authors
Paweł Klimczyk, Lech Madeyski
Abstract
Context: The Technical Debt metaphor has grown in popularity. More software is being created and has to be maintained. Agile methodologies, in particular Scrum, are widely used by development teams around the world. Estimation is an often practised step in sprint planning. The subject matter of this paper is the impact technical debt has on estimations.
Objective: The goal of this research is to identify estimation problems and their solutions due to previously introduced technical debt in software projects.
Method: The Systematic mapping study (SMS) method was applied in the research. Papers were selected from the popular digital databases (IEEE, ACM, Scopus, etc.) using defined search criteria. Afterwards, a snowballing procedure was performed and the final publication set was filtered using inclusion/exclusion criteria.
Results: 42 studies were selected and evaluated. Five categories of problems and seven proposed solutions to the problems have been extracted from the papers. Problems include items related to business perspective (delivery pressure or lack of technical debt understanding by business decision-makers) and technical perspective (difficulties in forecasting architectural technical debt impact or limits of source code analysis). Solutions were categorized in: more sophisticated decision-making tools for business managers, better tools for estimation support and technical debt management tools on an architectural-level, portfolio approach to technical debt, code audit and technical debt reduction routine conducted every sprint.
Conclusion: The results of this mapping study can help taking the appropriate approach in technical debt mitigation in organizations. However, the outcome of the conducted research shows that the problem of measuring technical debt impact on estimations has not yet been solved. We propose several directions for further investigation. In particular, we
would focus on more sophisticated decision-making tools.
Keywords
Software estimation, technical debt, project management, decision making, change impact
References
1. E. Mueller, X.L. Chen, and R. Riedel, “Challenges and requirements for the application of Industry 4.0: A special insight with the usage of cyber-physical system,” Chinese Journal of Mechanical Engineering , Vol. 30, No. 5, 2017, pp. 1050–1057.
2. M. Hermann, T. Pentek, and B. Otto, “Design principles for Industrie 4.0 scenarios,” in Proceedings of the 49th Hawaii International Conference on System Sciences (HICSS) , 2016, pp. 3928–3937.
3. J. Gubbi, R. Buyya, S. Marusic, and M. Palaniswami, “Internet of things (IoT): A vision, architectural elements, and future directions,” Future Generation Computer Systems , Vol. 29, No. 7, 2013, pp. 1645–1660.
4. J. Highsmith and A. Cockburn, “Agile software development: The business of innovation,” Computer , Vol. 34, No. 9, 2001, pp. 120–122.
5. L. Madeyski, “On the effects of pair programming on thoroughness and fault-finding effectiveness of unit tests,” in Product-Focused Software Process Improvement , Lecture Notes in Computer Science, J. Münch and P. Abrahamsson, Eds. Springer Berlin Heidelberg, 2007, Vol. 4589, pp. 207–221.
6. L. Madeyski, “The impact of test-first programming on branch coverage and mutation score indicator of unit tests: An experiment,” Information and Software Technology , Vol. 52, No. 2, 2010, pp. 169–184.
7. L. Madeyski, Test-Driven Development: An Empirical Evaluation of Agile Practice . (Heidelberg, London, New York): Springer, 2010.
8. L. Madeyski and Ł. Szała, “The impact of test-driven development on software development productivity – An empirical study,” in Software Process Improvement , Lecture Notes in Computer Science, P. Abrahamsson, N. Baddoo, T. Margaria, and R. Messnarz, Eds. Springer Berlin Heidelberg, 2007, Vol. 4764, pp. 200–211.
9. P. Kruchten, R.L. Nord, and I. Ozkaya, “Technical debt: From metaphor to theory and practice,” IEEE Software , Vol. 29, No. 6, 2012, pp. 18–21.
10. W. Cunningham, “The WyCash portfolio management system,” in Addendum to the Proceedings on Object-oriented Programming Systems, Languages, and Applications , OOPSLA ’92. New York, NY, USA: ACM, 1992, pp. 29–30.
11. M. Fowler, “Technical debt quadrant,” 2009. [Online]. https://martinfowler.com/bliki/TechnicalDebtQuadrant.html
12. A. Nugroho, J. Visser, and T. Kuipers, “An empirical model of technical debt and interest,” in Proceedings of the 2nd Workshop on Managing Technical Debt , MTD ’11. ACM, 2011, pp. 1–8.
13. E. Tom, A. Aurum, and R. Vidgen, “An exploration of technical debt,” Journal of Systems and Software , Vol. 86, No. 6, 2013, pp. 1498–1516.
14. M. Cohn, Agile Estimating and Planning . Pearson Education, 2005.
15. S. Hoogendoorn, This is Agile: Beyond the Basics. Beyond the Hype. Beyond Scrum . Dymaxicon, 2014.
16. “The bucket system,” 2017. [Online]. http://www.agileadvice.com/wp-content/uploads/2013/07/H10-Estimation-The-Bucket-System.pdf
17. C. Fernàndez-Sànchez, J. Garbajosa, and A. Yagüe, “A framework to aid in decision making for technical debt management,” 2015 IEEE 7th International Workshop on Managing Technical Debt (MTD) , 2015, pp. 69–76.
18. C. Fernández-Sánchez, J. Garbajosa, C. Vidal, and A. Yagüe, “An analysis of techniques and methods for technical debt management: A reflection from the architecture perspective,” in Proceedings of the Second International Workshop on Software Architecture and Metrics , SAM ’15. Piscataway, NJ, USA: IEEE Press, 2015, pp. 22–28.
19. L.F. Ribeiro, M.A.d.F. Farias, M. Mendonça, and R.O. Spínola, “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 2016. SCITEPRESS – Science and Technology Publications, Lda, 2016, pp. 572–579.
20. Z. Li, P. Avgeriou, and P. Liang, “A systematic mapping study on technical debt and its management,” Journal of Systems and Software , Vol. 101, 2015, pp. 193–220.
21. W.N. Behutiye, P. Rodríguez, M. Oivo, and A. Tosun, “Analyzing the concept of technical debt in the context of agile software development: A systematic literature review,” Information and Software Technology , Vol. 82, 2017, pp. 139–158.
22. A. Ampatzoglou, A. Ampatzoglou, A. Chatzigeorgiou, and P. Avgeriou, “The financial aspect of managing technical debt: A systematic literature review,” Information and Software Technology , Vol. 64, 2015, pp. 52—73.
23. N.S. Alves, T.S. Mendes, M.G. de Mendonça, R.O. Spínola, F. Shull, and C. Seaman, “Identification and management of technical debt,” Information and Software Technology , Vol. 70, No. C, 2016, pp. 100–121.
24. B.A. Kitchenham, D. Budgen, and P. Brereton, Evidence-Based Software Engineering and Systematic Reviews . Chapman and Hall/CRC, 2016.
25. K. Petersen, S. Vakkalanka, and L. Kuzniarz, “Guidelines for conducting systematic mapping studies in software engineering: An update,” Information and Software Technology , Vol. 64, 2015, pp. 1 – 18.
26. “IEEE Xplore Digital Library,” 2017. [Online]. http://ieeexplore.ieee.org
27. “ACM digital library,” 2017. [Online]. http://dl.acm.org
28. “Springer Link,” 2017. [Online]. https://link.springer.com
29. “Science Direct,” 2017. [Online]. http://www.sciencedirect.com
30. “Scopus Preview,” 2017. [Online]. https://www.scopus.com
31. C. Wohlin, “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. ACM, 2014, pp. 38:1–38:10.
32. M. Ivarsson and T. Gorschek, “A method for evaluating rigor and industrial relevance of technology evaluations,” Empirical Software Engineering , Vol. 16, No. 3, 2011, pp. 365–395.
33. J. Cohen, “A coefficient of agreement for nominal scales,” Educational and Psychological Measurement , Vol. 20, No. 1, 1960, pp. 37–46.
34. P. Brereton, B.A. Kitchenham, D. Budgen, M. Turner, and M. Khalil, “Lessons from applying the systematic literature review process within the software engineering domain,” Journal of Systems and Software , Vol. 80, No. 4, 2007, pp. 571–583.
35. N. Brown, Y. Cai, Y. Guo, R. Kazman, M. Kim, P. Kruchten, E. Lim, A. MacCormack, R. Nord, I. Ozkaya, R. Sangwan, C. Seaman, K. Sullivan, and N. Zazworka, “Managing technical debt in software-reliant systems,” in Proceedings of the FSE/SDP Workshop on Future of Software Engineering Research , FoSER ’10. ACM, 2010, pp. 47–52.
36. C. Izurieta, I. Ozkaya, C. Seaman, P. Kruchten, R.L. Nord, W. Snipes, and P. Avgeriou, “Perspectives on managing technical debt: A transition point and roadmap from dagstuhl,” in Joint Proceedings of the 4th International Workshop on Quantitative Approaches to Software Quality (QuASoQ 2016) and 1st International Workshop on Technical Debt Analytics (TDA 2016) , 2016, pp. 84–87. [Online]. http://ceur-ws.org/Vol-1771/paper15.pdf
37. P. Kruchten, R.L. Nord, I. Ozkaya, and D. Falessi, “Technical debt: Towards a crisper definition report on the 4th international workshop on managing technical debt,” ACM SIGSOFT Software Engineering Notes , Vol. 38, No. 5, 2013, pp. 51–54.
38. Y. Guo, C. Seaman, R. Gomes, A. Cavalcanti, G. Tonin, F.Q.B. Da Silva, A.L.M. Santos, and C. Siebra, “Tracking technical debt – An exploratory case study,” in Proceedings of the 27th IEEE International Conference on Software Maintenance , ICSM ’11. IEEE Computer Society, 2011, pp. 528–531.
39. K. Power, “Understanding the impact of technical debt on the capacity and velocity of teams and organizations: Viewing team and organization capacity as a portfolio of real options,” in Proceedings of the 4th International Workshop on Managing Technical Debt , 2013, pp. 28–31.
40. E. Lim, N. Taksande, and C. Seaman, “A balancing act: What software practitioners have to say about technical debt,” IEEE Software , Vol. 29, No. 6, 2012, pp. 22–27.
41. T. Klinger, P. Tarr, P. Wagstrom, and C. Williams, “An enterprise perspective on technical debt,” in Proceedings of the 2nd Workshop on Managing Technical Debt , MTD ’11. ACM, 2011, pp. 35–38.
42. Z. Codabux and B. Williams, “Managing technical debt: An industrial case study,” in Proceedings of the 4th International Workshop on Managing Technical Debt , MTD ’13. IEEE Press, 2013, pp. 8–15.
43. A. Martini, J. Bosch, and M. Chaudron, “Investigating architectural technical debt accumulation and refactoring over time,” Information and Software Technology , Vol. 67, No. C, 2015, pp. 237–253.
44. N. Ramasubbu, C.F. Kemerer, and C.J. Woodard, “Managing technical debt: Insights from recent empirical evidence,” IEEE Software , Vol. 32, No. 2, 2015, pp. 22–25.
45. J. Bohnet and J. Döllner, “Monitoring code quality and development activity by software maps,” in Proceedings of the 2nd Workshop on Managing Technical Debt , MTD ’11. ACM, 2011, pp. 9–16.
46. J.C. Rocha, V. Zapalowski, and I. Nunes, “Understanding technical debt at the code level from the perspective of software developers,” in Proceedings of the 31st Brazilian Symposium on Software Engineering, SBES , 2017, pp. 64–73.
47. R.K. Gupta, P. Manikreddy, and K.C. Arya, “Pragmatic scrum transformation: Challenges, practices and impacts during the journey A case study in a multi-location legacy software product development team,” in Proceedings of the 10th Innovations in Software Engineering Conference, ISEC , 2017, pp. 147–156.
48. N. Rios, R.O. Spínola, M.G. de Mendonça Neto, and C.B. Seaman, “A study of factors that lead development teams to incur technical debt in software projects,” in Proceedings of the 44th Euromicro Conference on Software Engineering and Advanced Applications, SEAA , 2018, pp. 429–436.
49. N.A. Ernst, S. Bellomo, I. Ozkaya, R.L. Nord, and I. Gorton, “Measure it? Manage it? Ignore it? Software practitioners and technical debt,” in Proceedings of the 10th Joint Meeting on Foundations of Software Engineering , ESEC/FSE 2015. ACM, 2015, pp. 50–60.
50. J. Yli-Huumo, A. Maglyas, and K. Smolander, “How do software development teams manage technical debt? – An empirical study,” Journal of Systems and Software , Vol. 120, 2016, pp. 195–218.
51. C.Y. Chen, C.W. She, and J.D. Tang, “An object-based, attribute-oriented approach for software change impact analysis,” in Proceedings of the IEEE International Conference on Industrial Engineering and Engineering Management , 2007, pp. 577–581.
52. R.R. de Almeida, U. Kulesza, C. Treude, D.C. Feitosa, and A.H.G. Lima, “Aligning technical debt prioritization with business objectives: A multiple-case study,” in Proceedings of the IEEE International Conference on Software Maintenance and Evolution, ICSME , 2018, pp. 655–664.
53. J. Yli-Huumo, A. Maglyas, and K. Smolander, “The sources and approaches to management of technical debt: A case study of two product lines in a middle-size finnish software company,” in Proceedings of the 15th International Conference Product-Focused Software Process Improvement , 2014, pp. 93–107.
54. T. Besker, A. Martini, and J. Bosch, “The pricey bill of technical debt: When and by whom will it be paid?” in Proceedings of the IEEE International Conference on Software Maintenance and Evolution, ICSME , 2017, pp. 13–23.
55. R.L. Nord, I. Ozkaya, P. Kruchten, and M. Gonzalez-Rojas, “In search of a metric for managing architectural technical debt,” in Proceedings of the Joint Working IEEE/IFIP Conference on Software Architecture and European Conference on Software Architecture , WICSA-ECSA ’12. Washington, DC, USA: IEEE Computer Society, 2012, pp. 91–100.
56. J. Yli-Huumo, A. Maglyas, K. Smolander, J. Haller, and H. Törnroos, “Developing processes to increase technical debt visibility and manageability – An action research study in industry,” in Proceedings of the International Conference on Product-Focused Software Process Improvement , Lecture Notes in Computer Science, Vol. 10027. Springer International Publishing, 2016, pp. 368–378.
57. C. de Souza and D. Redmiles, “An empirical study of software developers’ management of dependencies and changes,” in Proceedings of the 30th International Conference on Software Engineering , 2008, pp. 241–250.
58. A. Martini, E. Sikander, and N. Madlani, “A semi-automated framework for the identification and estimation of architectural technical debt: A comparative case-study on the modularization of a software component,” Information and Software Technology , Vol. 93, 2018, pp. 264–279.
59. N. Zazworka, R.O. Spínola, A. Vetro, F. Shull, and C. Seaman, “A case study on effectively identifying technical debt,” in Proceedings of the 17th International Conference on Evaluation and Assessment in Software Engineering , EASE ’13. ACM, 2013, pp. 42–47.
60. C. Seaman, Y. Guo, C. Izurieta, Y. Cai, N. Zazworka, F. Shull, and A. Vetrò, “Using technical debt data in decision making: Potential decision approaches,” in Proceedings of the Third International Workshop on Managing Technical Debt , MTD ’12. IEEE Press, 2012, pp. 45–48.
61. H. Jason and R. Günther, “When-to-release decisions in consideration of technical debt,” in Proceedings of the Sixth International Workshop on Managing Technical Debt, MTD@ICSME , 2014, pp. 31–34.
62. R.K. Gupta, P. Manikreddy, S. Naik, and K. Arya, “Pragmatic approach for managing technical debt in legacy software project,” in Proceedings of the 9th India Software Engineering Conference , ISEC ’16. ACM, 2016, pp. 170–176.
63. A. Pacheco, G. Marín-Raventós, and G. López, “Designing a technical debt visualization tool to improve stakeholder communication in the decision-making process: A case study,” in Proceedings of the 12th IFIP WG 8.9 Working Conference on Research and Practical Issues of Enterprise Information Systems , 2018, pp. 15–26.
64. T. Amanatidis, A. Chatzigeorgiou, and A. Ampatzoglou, “The relation between technical debt and corrective maintenance in PHP web applications,” Information and Software Technology , Vol. 90, 2017, pp. 70–74.
65. M. M. Bomfim and V. A. Santos, “Strategies for reducing technical debt in agile teams,” in Proceedings of the Brazilian Workshop on Agile Methods . Springer International Publishing, 2017, pp. 60—71.
66. K. Moharreri, A.V. Sapre, J. Ramanathan, and R. Ramnath, “Cost-effective supervised learning models for software effort estimation in agile environments,” in Proceedings of the Computer Software and Applications Conference (COMPSAC) , 2016, pp. 135–140.
67. B. Tanveer, “Guidelines for utilizing change impact analysis when estimating effort in agile software development,” in Proceedings of the 21st International Conference on Evaluation and Assessment in Software Engineering, EASE , 2017, pp. 252–257.
68. S.J. Kabeer, M. Nayebi, G. Ruhe, C. Carlson, and F. Chew, “Predicting the vector impact of change – an industrial case study at brightsquid,” in Proceedings of the ACM/IEEE International Symposium on Empirical Software Engineering and Measurement, ESEM , 2017, pp. 131–140.
69. K. Schmid, “A formal approach to technical debt decision making,” in Proceedings of the 9th International ACM Sigsoft Conference on Quality of Software Architectures , QoSA ’13. ACM, 2013, pp. 153–162.
70. Y. Guo and C. Seaman, “A portfolio approach to technical debt management,” in Proceedings of the 2nd Workshop on Managing Technical Debt , MTD ’11. ACM, 2011, pp. 31–34.
71. Y. Guo, R.O. Spínola, and C. Seaman, “Exploring the costs of technical debt management – A case study,” Empirical Software Engineering , Vol. 21, No. 1, 2016, pp. 159–182.
72. P. Mohagheghi and M.E. Aparicio, “An industry experience report on managing product quality requirements in a large organization,” Information and Software Technology , Vol. 88, 2017, pp. 96–109.
73. Z.S. Hossein Abad, R. Karimpour, J. Ho, S.M. Didar-Al-Alam, G. Ruhe, E. Tse, K. Barabash, and I. Hargreaves, “Understanding the impact of technical debt in coding and testing: An exploratory case study,” in Proceedings of the 3rd International Workshop on Software Engineering Research and Industrial Practice , SER& IP ’16. ACM, 2016, pp. 25–31.