Adoption and effects of software engineering best practices in machine learning