Adoption and Effects of Software Engineering Best Practices in Machine Learning
- 1. Radboud University
- 2. Leiden University
Description
The increasing reliance on applications with ML components calls for mature engineering techniques that ensure these are built in a robust and future-proof manner.
We aim to empirically determine the state of the art in how teams develop, deploy and maintain software with ML components.
We mined both academic and grey literature and identified 29 engineering best practices for ML applications.
We conducted a survey among \finalFiltered~practitioners to determine the degree of adoption for these practices and to validate their perceived effects.
Using the survey responses, we quantified practice adoption, differentiated along demographic characteristics, such as geography or team size.
Our findings indicate, for example, that larger teams tend to adopt more practices, and that traditional software engineering practices tend to have lower adoption than \ac{ML} specific practices.
Also, the statistical models can accurately predict perceived effects such as agility, software quality and traceability, from the degree of adoption for specific sets of practices.
Combining practice adoption rates with practice importance, as revealed by statistical models, we identify practices that are important but have low adoption and practices that are widely adopted but are less important for the effects we studied.
Overall, our survey and response analysis provide a quantitative basis for
assessment and step-wise improvement of practice adoption by ML teams.