  [Context] Applying design principles has long been acknowledged as beneficial
for understanding and maintainability in traditional software projects. These
benefits may similarly hold for Machine Learning (ML) projects, which involve
iterative experimentation with data, models, and algorithms. However, ML
components are often developed by data scientists with diverse educational
backgrounds, potentially resulting in code that doesn't adhere to software
design best practices. [Goal] In order to better understand this phenomenon, we
investigated the impact of the SOLID design principles on ML code
understanding. [Method] We conducted a controlled experiment with three
independent trials involving 100 data scientists. We restructured real
industrial ML code that did not use SOLID principles. Within each trial, one
group was presented with the original ML code, while the other was presented
with ML code incorporating SOLID principles. Participants of both groups were
asked to analyze the code and fill out a questionnaire that included both
open-ended and closed-ended questions on their understanding. [Results] The
study results provide statistically significant evidence that the adoption of
the SOLID design principles can improve code understanding within the realm of
ML projects. [Conclusion] We put forward that software engineering design
principles should be spread within the data science community and considered
for enhancing the maintainability of ML code.
