Skip to content

Software Engineering for Machine Learning: a case study - Microsoft

Posted on:September 26, 2022 at 12:00 AM

This post is part of the ongoing series of reading reflections on HCI papers and articles. You can find the other posts ‘here.’

Software Engineering for Machine Learning: A Case Study (2019) - Microsoft

Available at Microsoft.

This article discusses the challenges of developing large-scale machine learning applications and the best practices to address them. It gives valuable insights into Microsoft’s ML workflows and also features a survey of Microsoft’s ML teams, where they express the face challenges and how they address them.

Prompts

Why is this article important?

The article lists key challenges and how Microsoft’s teams adapted to them. It also gives a good overview of the ML process and how it differs from traditional software development. Both give a holistic view of the ML process and how it differs from traditional software development.

It also presents a maturity model to help teams self-assess how well they work with machine learning and offer guidance towards improvements. The article is based on the responses of a diverse set of Microsoft teams with varying levels of experience with building AI, and it is a good example of how to conduct a case study.

What do the authors seem to be assuming about the future of A.I. and Human Interaction?

The authors expect the development of ML applications will diverge further from traditional software development due to the unique challenges of ML, as outlined by the author’s observations on the fundamental differences between them, which include: the differences between software design and ML data (abstract, modular, and structured vs specific, complex, and heterogenous), reusability (traditional software can be easily extended, ML is not so straightforward) and modularity (traditional software systems can be completely isolated, achieving the same in ML isn’t as simple).

How might you integrate the reading into your academic/professional work?

As a Computer Science student who has worked with traditional software development, I found the article to be very insightful. I have worked with ML in the past, but I have never worked on a large-scale ML application, I found the article’s discussion on the differences between traditional software development and ML development to be very interesting and appropriate. I also found the maturity model very useful, and I will definitely use it in the future to assess my and my team’s work.

Disclaimer: This is a personal blog. Any views or opinions represented in this blog are personal and belong solely to the blog owner and do not represent those of people, institutions, or organizations that the owner may or may not be associated with in professional or personal capacity unless explicitly stated.