Characterizing Technical Debt and Antipatterns in AI-Based Systems: A Systematic Mapping Study

Background: With the rising popularity of Artificial Intelligence (AI), there is a growing need to build large and complex AI-based systems in a cost-effective and manageable way. Like with traditional software, Technical Debt (TD) will emerge naturally over time in these systems, therefore leading to challenges and risks if not managed appropriately. The influence of data science and the stochastic nature of AI-based systems may also lead to new types of TD or antipatterns, which are not yet fully understood by researchers and practitioners. Objective: The goal of our study is to provide a clear overview and characterization of the types of TD (both established and new ones) that appear in AI-based systems, as well as the antipatterns and related solutions that have been proposed. Method: Following the process of a systematic mapping study, 21 primary studies are identified and analyzed. Results: Our results show that (i) established TD types, variations of them, and four new TD types (data, model, configuration, and ethics debt) are present in AI-based systems, (ii) 72 antipatterns are discussed in the literature, the majority related to data and model deficiencies, and (iii) 46 solutions have been proposed, either to address specific TD types, antipatterns, or TD in general. Conclusions: Our results can support AI professionals with reasoning about and communicating aspects of TD present in their systems. Additionally, they can serve as a foundation for future research to further our understanding of TD in AI-based systems.

[1]  Michael Felderer,et al.  Quality Assurance for AI-Based Systems: Overview and Challenges (Introduction to Interactive Session) , 2021, SWQD.

[2]  Claes Wohlin,et al.  Guidelines for snowballing in systematic literature studies and a replication in software engineering , 2014, EASE '14.

[3]  Foutse Khomh,et al.  The Scent of Deep Learning Code: An Empirical Study , 2020, 2020 IEEE/ACM 17th International Conference on Mining Software Repositories (MSR).

[4]  P. Santhanam,et al.  Quality Management of Machine Learning Systems , 2020, ArXiv.

[5]  Koen van der Blom,et al.  Adoption and Effects of Software Engineering Best Practices in Machine Learning , 2020, ESEM.

[6]  Anuradha Bhamidipaty,et al.  DQA: Scalable, Automated and Interactive Data Quality Advisor , 2019, 2019 IEEE International Conference on Big Data (Big Data).

[7]  Michael Felderer,et al.  Risk-based data validation in machine learning-based software systems , 2019, MaLTeSQuE@ESEC/SIGSOFT FSE.

[8]  David Lo,et al.  Is Using Deep Learning Frameworks Free? Characterizing Technical Debt in Deep Learning Frameworks , 2020, 2020 IEEE/ACM 42nd International Conference on Software Engineering: Software Engineering in Society (ICSE-SEIS).

[9]  Foutse Khomh,et al.  Studying Software Engineering Patterns for Designing Machine Learning Systems , 2019, 2019 10th International Workshop on Empirical Software Engineering in Practice (IWESEP).

[10]  Peng Liang,et al.  A systematic mapping study on technical debt and its management , 2015, J. Syst. Softw..

[11]  Barbara Kitchenham,et al.  Procedures for Performing Systematic Reviews , 2004 .

[12]  Thomas J. Mowbray,et al.  AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis , 1998 .

[13]  Kai Petersen,et al.  Systematic Mapping Studies in Software Engineering , 2008, EASE.

[14]  Mikio Aoyama,et al.  Towards Guidelines for Assessing Qualities of Machine Learning Systems , 2020, QUATIC.

[15]  Venkat N. Gudivada,et al.  Data Quality Considerations for Big Data and Machine Learning: Going Beyond Data Cleaning and Transformations , 2017 .

[16]  Philippe Kruchten,et al.  What is social debt in software engineering? , 2013, 2013 6th International Workshop on Cooperative and Human Aspects of Software Engineering (CHASE).

[17]  Felix Bießmann,et al.  On Challenges in Machine Learning Model Management , 2018, IEEE Data Eng. Bull..

[18]  Gabriele Bavota,et al.  Taxonomy of Real Faults in Deep Learning Systems , 2019, 2020 IEEE/ACM 42nd International Conference on Software Engineering (ICSE).

[19]  D. Sculley,et al.  The Data Linter: Lightweight Automated Sanity Checking for ML Data Sets , 2017 .

[20]  Ivica Crnkovic,et al.  A Taxonomy of Software Engineering Challenges for Machine Learning Systems: An Empirical Investigation , 2019, XP.

[21]  Harald C. Gall,et al.  Software Engineering for Machine Learning: A Case Study , 2019, 2019 IEEE/ACM 41st International Conference on Software Engineering: Software Engineering in Practice (ICSE-SEIP).

[22]  Ville Vakkuri,et al.  “This is Just a Prototype”: How Ethics Are Ignored in Software Startup-Like Environments , 2020, XP.

[23]  ISO / IEC 25010 : 2011 Systems and software engineering — Systems and software Quality Requirements and Evaluation ( SQuaRE ) — System and software quality models , 2013 .

[24]  P. Schofield A Companion to Qualitative Research , 2005 .

[25]  D. Sculley,et al.  Hidden Technical Debt in Machine Learning Systems , 2015, NIPS.

[26]  John Langford,et al.  Making Contextual Decisions with Low Technical Debt , 2016 .

[27]  Ivica Crnkovic,et al.  Engineering AI Systems: A Research Agenda , 2020, Advances in Systems Analysis, Software Engineering, and High Performance Computing.

[28]  Foutse Khomh,et al.  An Exploratory Study of the Impact of Code Smells on Software Change-proneness , 2009, 2009 16th Working Conference on Reverse Engineering.

[29]  Jeanna Neefe Matthews,et al.  Managing Bias in AI , 2019, WWW.

[30]  Jan Bosch,et al.  Software Engineering Challenges of Deep Learning , 2018, 2018 44th Euromicro Conference on Software Engineering and Advanced Applications (SEAA).

[31]  Ipek Ozkaya,et al.  Managing Technical Debt in Software Engineering (Dagstuhl Seminar 16162) , 2016, Dagstuhl Reports.

[32]  Philippe Kruchten,et al.  Building and evaluating a theory of architectural technical debt in software-intensive systems , 2021, J. Syst. Softw..

[33]  Ward Cunningham,et al.  The WyCash portfolio management system , 1992, OOPSLA '92.

[34]  Nenad Medvidovic,et al.  Identifying Architectural Bad Smells , 2009, 2009 13th European Conference on Software Maintenance and Reengineering.

[35]  George Fairbanks Ur-Technical Debt , 2020, IEEE Softw..

[36]  Stefan Biffl,et al.  Technical Debt in Data-Intensive Software Systems , 2019, 2019 45th Euromicro Conference on Software Engineering and Advanced Applications (SEAA).

[37]  Alfred Zimmermann,et al.  Towards a Collaborative Repository for the Documentation of Service-Based Antipatterns and Bad Smells , 2019, 2019 IEEE International Conference on Software Architecture Companion (ICSA-C).

[38]  Rami Bahsoon,et al.  Prioritizing Technical Debt in Database Normalization Using Portfolio Theory and Data Quality Metrics , 2018, 2018 IEEE/ACM International Conference on Technical Debt (TechDebt).

[39]  Gül Çalikli,et al.  Empirical Analysis of Hidden Technical Debt Patterns in Machine Learning Software , 2019, PROFES.

[40]  Neoklis Polyzotis,et al.  Data Validation for Machine Learning , 2019, SysML.

[41]  Carolyn B. Seaman,et al.  A portfolio approach to technical debt management , 2011, MTD '11.

[42]  Mauricio A. Saca Refactoring improving the design of existing code , 2017, 2017 IEEE 37th Central America and Panama Convention (CONCAPAN XXXVII).

[43]  Makoto Uchida,et al.  Common problems with Creating Machine Learning Pipelines from Existing Code , 2020 .

[44]  Foutse Khomh,et al.  Machine Learning Software Engineering in Practice: An Industrial Case Study , 2019, ArXiv.

[45]  Jens Dietrich,et al.  Antipattern and Code Smell False Positives: Preliminary Conceptualization and Classification , 2016, 2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER).

[46]  D. Sculley,et al.  The ML test score: A rubric for ML production readiness and technical debt reduction , 2017, 2017 IEEE International Conference on Big Data (Big Data).

[47]  Jan Bosch,et al.  Data Management Challenges for Deep Learning , 2019, 2019 45th Euromicro Conference on Software Engineering and Advanced Applications (SEAA).

[48]  Hrvoje Belani,et al.  Requirements Engineering Challenges in Building AI-Based Complex Systems , 2019, 2019 IEEE 27th International Requirements Engineering Conference Workshops (REW).

[49]  Jeanna Neefe Matthews,et al.  Patterns and Anti-Patterns, Principles and Pitfalls: Accountability and Transparency in AI , 2020, AI Mag..

[50]  Manoel G. Mendonça,et al.  A tertiary study on technical debt: Types, management strategies, research trends, and base information for practitioners , 2018, Inf. Softw. Technol..

[51]  Grace A. Lewis,et al.  Component Mismatches Are a Critical Bottleneck to Fielding AI-Enabled Systems in the Public Sector , 2019, ArXiv.