Nowadays, intelligent systems and services are getting increasingly popular as they provide data-driven solutions to diverse real-world problems, thanks to recent breakthroughs in Artificial Intelligence (AI) and Machine Learning (ML). However, machine learning meets software engineering not only with promising potentials but also with some inherent challenges. Despite some recent research efforts, we still do not have a clear understanding of the challenges of developing ML-based applications and the current industry practices. Moreover, it is unclear where software engineering researchers should focus their efforts to better support ML application developers. In this paper, we report about a survey that aimed to understand the challenges and best practices of ML application development. We synthesize the results obtained from 80 practitioners (with diverse skills, experience, and application domains) into 17 findings; outlining challenges and best practices for ML application development. Practitioners involved in the development of ML-based software systems can leverage the summarized best practices to improve the quality of their system. We hope that the reported challenges will inform the research community about topics that need to be investigated to improve the engineering process and the quality of ML-based applications.
翻译:由于最近在人工智能(AI)和机器学习(ML)方面的突破,智能系统和服务在为各种现实世界问题提供以数据为驱动的解决方案方面越来越受欢迎。然而,机器学习不仅满足了软件工程的希望潜力,而且还遇到了一些固有的挑战。尽管最近作出了一些研究努力,但我们仍不能清楚地了解开发基于ML的应用软件和当前行业做法的挑战。此外,尚不清楚软件工程研究人员应如何集中努力更好地支持ML应用开发者。我们在本文件中报告了一项调查,目的是了解ML应用开发的挑战和最佳做法。我们把80名从业人员(具有不同技能、经验和应用领域)获得的结果综合到17项调查结果中;概述了ML应用开发的挑战和最佳做法。参与开发基于ML软件系统的从业人员可以利用总结的最佳做法来提高系统的质量。我们希望所报告的挑战能够使研究界了解改进基于ML应用的工程进程和质量需要调查的专题。