Understand the business problem
As a machine learning engineer at Proseware, you collaborate with many technical stakeholders. Next to working with the data science team who trained a diabetes classification model, you also work together with the software developers responsible of the web application (used by practitioners) that will consume the model.
To adapt to new requirements, the web app will be updated over time, and similarly, the model is also expected to change over time. Whenever there's data drift or a decrease in model performance, the data science team will be asked to revise the model and update the code accordingly.
Whenever a change to the model is needed, the data science team will need to experiment, test, and package the model. While they're working on a new and improved model, the model in production should remain unchanged to ensure a stable experience for the practitioners working with the web app.
As a machine learning engineer, you want to set up feature-based development for the data scientists. By working with branches in your source control, you'll protect the main branch, which contains the production code, and you'll allow data scientists to safely experiment in their own branches.
To set up feature-based development, you'll want to:
- Block any direct pushes to the main branch.
- Work with pull requests whenever an update to the code is needed.
- Trigger code quality checks whenever a pull request is created to automatically verify the code.
- Merge a pull request only when changes are approved manually.