Technical Debt of Usability in Software Projects: A Multi-Case Study
Keywords:Technical debt, Software, Usability, Effort, Case study
Background: Over the years, several studies were conducted aiming at understanding the Technical Debt (TD) phenomenon and its implications on software development. Most of these studies focus on source code related TD types. The absence of empirical studies on usability debt motivated our research. Aims: The goal of this paper is to provide an initial usability debt characterization in software projects regarding its occurrence, type, and resolution effort. Method: We conducted a multi-case study, analyzing TD items of five software projects from four Brazilian public companies. Results: After several steps of selection, classification, and validation, we identified 145 TD items in the change management systems used in the projects. The analysis of these items allowed us to observe that 13.8% of the TD items concerned usability debt (ranging from 10.4% to 20.8% in the five projects). The identified usability debt items cover a range of relevant usability issues, violating eight out of the ten Nielsen usability heuristics. Regarding effort for paying the TD, measured in man hours estimated by the project managers for resolving the TD items, usability debt items require a relatively low effort, ranging from 5.1% to 6.7% of the total TD resolution effort in the analyzed projects. Conclusions: Considering that usability TD items are frequent, concern relevant usability issues and require low effort for their payment, we put forward that actions for identifying and paying this type of TD should receive high priority in TD management strategies.
C. (2016). Identification and management of technical debt: A systematic mapping study. 70:100–121.
Ampatzoglou, A., Ampatzoglou, A., Chatzigeorgiou, A., and Avgeriou, P. (2015). The financial aspect of managing technical debt: A systematic literature review. 64:52–73.
Cunningham, W. (1992). The WyCash portfolio management system. In Addendum to the Proceedings on Object-oriented Programming Systems, Languages, and Applications (Addendum), OOPSLA ’92, pages 29–30. ACM.
Falessi, D., Kruchten, P., and Avgeriou, P. (2016). Introduction to the special issue on technical debt in software systems. 120:154–155.
Fernández-Sánchez, C., Garbajosa, J., Yagüe, A., and Perez, J. (2017). Identification and analysis of the elements required to manage technical debt by means of a systematic mapping study. 124:22–38.
Guo, Y., Seaman, C., and Q.B. da Silva, F. (2016). Costs and obstacles encountered in technical debt management – a case study. 120:156–169.
Kruchten, P., Nord, R., and Ozkaya, I. (2012). Technical debt: From metaphor to theory and practice. 29(6):18–21.
Lehman, M. M. (1996). Feedback in the software evolution process. 38(11):681–686.
Li, Z., Avgeriou, P., and Liang, P. (2015). A systematic mapping study on technical debt and its management. 101:193–220.
Molich, Rolf; Nielsen, J. (1990). Improving a human-computer dialogue. Commun. ACM, 33(3):338–348.
Nielsen, J. (1994). Enhancing the explanatory power of usability heuristics. In Procee- dings of the SIGCHI Conference on Human Factors in Computing Systems, CHI ’94, pages 152–158. ACM.
Parnas, D. (1994). Software aging. In IEEE Proceedings of 16th International Conference on Software Engineering, pages 279–287, Sorrento, Italy, Italy.
Rios, N., Mendonça, M., and 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.
Runeson, P. Host, M. (2009). Empir software eng (2009) 14: 131. https://doi.org/10.1007/s10664-008-9102-8.
Runeson, Per; Host, M. R. A. R. B. (2012). Case Study Research in Software Engineering
- Guidelines and Examples. John Wiley Sons Ltd.
Seaman, C. and Guo, Y. (2011). Chapter 2 - measuring and monitoring technical debt. In Zelkowitz, M. V., editor, Advances in Computers, volume 82, pages 25–46. Elsevier.
Seaman, C. B. (1999). Qualitative methods in empirical studies of software engineering.
IEEE Transactions on Software Engineering, 25:557–572.
Tom, E., Aurum, A., and Vidgen, R. (2012). A consolidated understanding of technical debt.
Tom, E., Aurum, A., and Vidgen, R. (2013). An exploration of technical debt.
Yli-Huumo, J., Maglyas, A., and Smolander, K. (2016). How do software development teams manage technical debt? – an empirical study. 120:195–218.
Zazworka, N., Spínola, R. O., Vetro’, A., Shull, F., and Seaman, C. (2013). A case study on effectively identifying technical debt. In Proceedings of the 17th International Conference on Evaluation and Assessment in Software Engineering, EASE ’13, pages 42–47. ACM.