Achieving Guidance in Applied Machine Learning through Software
  Engineering Techniques
  Development of machine learning (ML) applications is hard. Producing
successful applications requires, among others, being deeply familiar with a
variety of complex and quickly evolving application programming interfaces
(APIs). It is therefore critical to understand what prevents developers from
learning these APIs, using them properly at development time, and understanding
what went wrong when it comes to debugging. We look at the (lack of) guidance
that currently used development environments and ML APIs provide to developers
of ML applications, contrast these with software engineering best practices,
and identify gaps in the current state of the art. We show that current ML
tools fall short of fulfilling some basic software engineering gold standards
and point out ways in which software engineering concepts, tools and techniques
need to be extended and adapted to match the special needs of ML application
development. Our findings point out ample opportunities for research on
ML-specific software engineering.
