ABSTRACT
Architectural Technical Debt is regarded as sub-optimal architectural solutions that need to be refactored in order to avoid the payment of a costly interest in the future. However, decisions on if and when to refactor architecture are extremely important and difficult to take, since changing software at the architectural level is quite expensive. Therefore it is important, for software organizations, to have methods and tools that aid architects and managers to understand if Architecture Technical Debt will generate a costly and growing interest to be paid or not. Current knowledge, especially empirically developed and evaluated, is quite scarce. In this paper we developed and evaluated a method, AnaConDebt, by analyzing, together with several practitioners, 12 existing cases of Architecture Debt in 6 companies. The method has been refined several times in order to be useful and effective in practice. We also report the evaluation of the method with a final case, for which we present anonymized results and subsequent refactoring decisions. The method consists of several components that need to be analyzed, combining the theoretical Technical Debt framework and the practical experience of the practitioners, in order to identify the key factors involved in the growth of interest. The output of the method shows summarized indicators that visualizes the factors in a useful way for the stakeholders. This analysis aids the practitioners in deciding on if and when to refactor Architectural Technical Debt items. The method has been evaluated and has been proven useful to support the architects into systematically analyze and decide upon a case.
- P. Kruchten, R. L. Nord, and I. Ozkaya, "Technical Debt: From Metaphor to Theory and Practice," IEEE Softw., vol. 29, no. 6, pp. 18--21, 2012. Google ScholarDigital Library
- R. L. Nord, I. Ozkaya, P. Kruchten, and M. Gonzalez-Rojas, "In Search of a Metric for Managing Architectural Technical Debt," in 2012 Joint Working IEEE/IFIP Conference on Software Architecture (WICSA) and European Conference on Software Architecture (ECSA), 2012, pp. 91--100. Google ScholarDigital Library
- A. Martini, J. Bosch, and M. Chaudron, "Investigating Architectural Technical Debt Accumulation and Refactoring over Time: a Multiple-Case Study," Inf. Softw. Technol. Google ScholarDigital Library
- A. Martini and J. Bosch, "The Danger of Architectural Technical Debt: Contagious Debt and Vicious Circles," in accepted for publication at WICSA 2015, Montreal, Canada. Google ScholarDigital Library
- 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 2015 10th Joint Meeting on Foundations of Software Engineering, New York, NY, USA, 2015, pp. 50--60. Google ScholarDigital Library
- E. Tom, A. Aurum, and R. Vidgen, "An exploration of technical debt," J. Syst. Softw., vol. 86, no. 6, pp. 1498--1516, Jun. 2013. Google ScholarDigital Library
- W. Cunningham, "The WyCash portfolio management system," in ACM SIGPLAN OOPS Messenger, 1992, vol. 4, pp. 29--30. Google ScholarDigital Library
- Z. Li, P. Avgeriou, and P. Liang, "A systematic mapping study on technical debt and its management," J. Syst. Softw., vol. 101, pp. 193--220, Mar. 2015. Google ScholarDigital Library
- N. Brown, Y. Cai, Y. Guo, R. Kazman, M. Kim, P. Kruchten, E. Lim, A. MacCormack, R. Nord, I. Ozkaya, and others, "Managing technical debt in software-reliant systems," in Proceedings of the FSE/SDP workshop on Future of software engineering research, 2010, pp. 47--52. Google ScholarDigital Library
- Y. Guo, C. Seaman, R. Gomes, A. Cavalcanti, G. Tonin, F. Q. Da Silva, A. L. M. Santos, and C. Siebra, "Tracking technical debt---An exploratory case study," in Software Maintenance (ICSM), 2011 27th IEEE International Conference on, 2011, pp. 528--531. Google ScholarDigital Library
- C. Seaman, Y. Guo, N. Zazworka, F. Shull, C. Izurieta, Y. Cai, and A. Vetro, "Using technical debt data in decision making: Potential decision approaches," in 2012 Third International Workshop on Managing Technical Debt (MTD), 2012, pp. 45--48. Google ScholarDigital Library
- J.-L. Letouzey, "The SQALE Method for Evaluating Technical Debt," in Proceedings of the Third International Workshop on Managing Technical Debt, Piscataway, NJ, USA, 2012, pp. 31--36. Google ScholarDigital Library
- 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, New York, NY, USA, 2011, pp. 1--8. Google ScholarDigital Library
- K. Schmid, "A formal approach to technical debt decision making," in Proceedings of the 9th international ACM Sigsoft conference on Quality of software architectures, 2013, pp. 153--162. Google ScholarDigital Library
- P. Kruchten, "What do software architects really do?," J. Syst. Softw., vol. 81, no. 12, pp. 2413--2416, Dec. 2008. Google ScholarDigital Library
- A. Martini, L. Pareto, and J. Bosch, "Role of Architects in Agile Organizations," in Continuous Software Engineering, J. Bosch, Ed. Springer International Publishing, 2014, pp. 39--50.Google Scholar
- M. A. Babar and I. Gorton, "Comparison of scenario-based software architecture evaluation methods," in Software Engineering Conference, 2004. 11th Asia-Pacific, 2004, pp. 600--607. Google ScholarDigital Library
- K. Peffers, T. Tuunanen, M. A. Rothenberger, and S. Chatterjee, "A Design Science Research Methodology for Information Systems Research," J. Manag. Inf. Syst., vol. 24, no. 3, pp. 45--77, Dec. 2007. Google ScholarDigital Library
- ISO - International Organization for Standardization, "System and software quality models." {Online}. Available: http://www.iso.org/iso/catalogue_detail.htm?csnumber=52075. {Accessed: 08-Mar-2015}.Google Scholar
- J. Carriere, R. Kazman, and I. Ozkaya, "A cost-benefit framework for making architectural decisions in a business context," in 2010 ACM/IEEE 32nd International Conference on Software Engineering, 2010, vol. 2, pp. 149--157. Google ScholarDigital Library
- P. Runeson and M. Höst, "Guidelines for conducting and reporting case study research in software engineering," Empir. Softw. Eng., vol. 14, no. 2, pp. 131--164, Dec. 2008. Google ScholarDigital Library
Index Terms
- An empirically developed method to aid decisions on architectural technical debt refactoring: AnaConDebt
Recommendations
Investigating Architectural Technical Debt accumulation and refactoring over time
Display Omitted We provide a taxonomy of the causes for Architectural Technical Debt accumulation.Crisis model: shows the increasing accumulation of Architectural Technical Debt.Phases model: shows when Architectural Technical Debt is accumulated and ...
A semi-automated framework for the identification and estimation of Architectural Technical Debt
ContextResearch and industry's attention has been focusing on developing systems that enable fast time to market in the short term, but would assure a sustainable delivery of business value and maintenance operations in the long run. A related ...
Architectural design decisions that incur technical debt — An industrial case study
Abstract Context:During software development, some architectural design decisions incur technical debt, either deliberately or inadvertently. These have serious impact on the quality of a software system, and can cost significant ...
Comments