# When Code Smells Meet ML: On the Lifecycle of ML-specific Code Smells in ML-enabled Systems

arXiv: https://arxiv.org/abs/2403.08311 · HTML: https://mlsanity.com/paper/2403.08311/

## Key facts

- Cited by 2 papers in the map (data through 14 Oct 2026).
- First posted on arXiv 13 Mar 2024.

## Built on by (most cited first, 2 of 2)

- [MLScent A tool for Anti-pattern detection in ML projects](https://mlsanity.com/paper/2502.18466/) (2025)
- [SpecDetect4ML: Detecting Non-Local ML Code Smells with Code Property Graphs](https://mlsanity.com/paper/2509.20491/) (2025)

## Abstract (arXiv)

Context. The adoption of Machine Learning (ML)--enabled systems is steadily increasing. Nevertheless, there is a shortage of ML-specific quality assurance approaches, possibly because of the limited knowledge of how quality-related concerns emerge and evolve in ML-enabled systems. Objective. We aim to investigate the emergence and evolution of specific types of quality-related concerns known as ML-specific code smells, i.e., sub-optimal implementation solutions applied on ML pipelines that may significantly decrease both the quality and maintainability of ML-enabled systems. More specifically, we present a plan to study ML-specific code smells by empirically analyzing (i) their prevalence in real ML-enabled systems, (ii) how they are introduced and removed, and (iii) their survivability. Method. We will conduct an exploratory study, mining a large dataset of ML-enabled systems and analyzing over 400k commits about 337 projects. We will track and inspect the introduction and evolution of ML smells through CodeSmile, a novel ML smell detector that we will build to enable our investigation and to detect ML-specific code smells.
