Software Engineering for Machine Learning: A Case StudySEIPIndustry Program
Recent advances in machine learning have stimulated widespread interest within the Information Technology sector on integrating AI capabilities into software and services. This goal has forced organizations to evolve their development processes. We report on a study that we conducted on observing software teams at Microsoft as they develop AI-based applications. We consider a nine-stage workflow process informed by prior experiences developing AI applications (e.g., search and NLP) and data science tools (e.g. application diagnostics and bug reporting). We found that various Microsoft teams have united this workflow into preexisting, well-evolved, Agile-like software engineering processes, providing insights about several essential engineering challenges that organizations may face in creating large-scale AI solutions for the marketplace. We collected some best practices from Microsoft teams to address these challenges. In addition, we have identified three aspects of the AI domain that make it fundamentally different from prior software application domains: 1) discovering, managing, and versioning the data needed for machine learning applications is much more complex and difficult than other types of software engineering, 2) model customization and model reuse require very different skills than are typically found in software teams, and 3) AI components are more difficult to handle as distinct modules than traditional software components – models may be ``entangled'' in complex ways and experience non-monotonic error behavior. We believe that the lessons learned by Microsoft teams will be valuable to other organizations.
Thu 30 MayDisplayed time zone: Eastern Time (US & Canada) change
14:00 - 15:30 | Trends and Challenges in SENew Ideas and Emerging Results / Technical Track / Software Engineering in Practice / Papers at Place du Canada Chair(s): Barbora Buhnova Masaryk University | ||
14:00 20mTalk | Software Engineering for Machine Learning: A Case StudySEIPIndustry Program Software Engineering in Practice Saleema Amershi Microsoft, Andrew Begel Microsoft Research, Christian Bird Microsoft Research, Robert DeLine Microsoft Research, Harald Gall University of Zurich, Ece Kamar Microsoft, Nachiappan Nagappan Microsoft Research, Besmira Nushi Microsoft Research, Thomas Zimmermann Microsoft Research Pre-print | ||
14:20 10mTalk | Blockchain-based Software EngineeringNIER New Ideas and Emerging Results Moritz Beller Delft University of Technology, Joseph Hejderup Delft University of Technology, Netherlands Pre-print | ||
14:30 10mTalk | On Testing Quantum ProgramsNIER New Ideas and Emerging Results Pre-print | ||
14:40 10mTalk | Towards a Systematic Study of Values in SE: Tools for Industry and EducationNIER New Ideas and Emerging Results Emily Winter Lancaster University, Stephen Forshaw Lancaster University, Lucy Hunt Lancaster University, Maria Angela Ferarrio Lancaster University | ||
14:50 10mTalk | Robustness and Games Against Nature in Molecular ProgrammingNIER New Ideas and Emerging Results Jack H. Lutz Iowa State University, Neil Lutz University of Pennsylvania, Robyn Lutz Iowa State University, Matthew Riley Iowa State University | ||
15:00 20mTalk | Statistical Algorithmic Profiling for Randomized Approximate ProgramsTechnical Track Technical Track Keyur Joshi University of Illinois at Urbana-Champaign, Vimuth Fernando University of Illinois at Urbana-Champaign, Sasa Misailovic University of Illinois at Urbana-Champaign Pre-print | ||
15:20 10mTalk | Discussion Period Papers |