The term Technical Debt became popular in 1992, when Ward Cunningham tried to introduce a metaphor that expresses immature software artifacts that fail to meet the required level of quality. More generally, it reflects technical compromises that can yield short-term benefits but may hurt the long-term health of a software system.Technical Debt has since been recognized by the industry as a major issue in software engineering, while the research community has spent substantial effort in trying to define ways to tackle it. The inevitable hype has resulted in a proliferation of approaches to deal with Technical Debt at the level of code, design, architecture, requirements, testing etc. In this context we revisit the state of the art to examine how much progress is achieved so far, and we discuss some promising future directions in the field.
Dr. Paris Avgeriou is Professor of Software Engineering in the Johann Bernoulli Institute for Mathematics and Computer Science, University of Groningen, the Netherlands where he has led the Software Engineering research group since September 2006. Before joining Groningen, he was a post-doctoral Fellow of the European Research Consortium for Informatics and Mathematics (ERCIM). He has participated in a number of national and European research projects directly related to the European industry of Software-intensive systems. He has co-organized several international conferences and workshops (mainly at the International Conference on Software Engineering - ICSE). He sits on the editorial board of Springer Transactions on Pattern Languages of Programming (TPLOP). He has edited special issues in IEEE Software, Elsevier Journal of Systems and Software and Springer TPLOP. He has published more than 110 peer-reviewed articles in international journals, conference proceedings and books. His research interests lie in the area of software architecture, with strong emphasis on architecture modeling, knowledge, evolution, patterns and link to requirements. He champions the evidence-based paradigm in Software Engineering research.