Functionality versus quality
Algorithm improvements can be (in fact often should be) iterative, increasing quality and performance. In traditional software engineering, where iterations focus on adding functionality (although also sometimes addressing non-functional tasks, e.g. technical debt), the measures for success in machine learning applications are much fuzzier. It may be difficult to define when the performance metrics are “good enough”. Furthermore, prediction quality may vary (i.e. may temporarily decrease) between iterations as machine learning engineers experiments with new models or adjust hyperparameters. Having short iterations is important to manage the scope of research.
Researchers can be a very special breed who may be viewed as highly intelligent and quirky and treated with an air of distance and can be considered hard to work with. They may not get exposed to important feedback cycles from customers and their fellow engineers, perhaps also at their own volition. This means that they may produce suboptimal results and project changes to for example the product or timeline may be slow to pick up. Product owners also get limited feedback, and developers may fail to optimize the data pipelines that feed the algorithms. It is important to embed data scientists, researchers and machine learning engineers in cross-functional teams to foster effective and efficient collaborations.
Retrospectives are a key aspect of agile and helps teams to get better and more efficient with each iteration. This is especially important for heterogeneous teams where understanding between software developers and machine learning engineers often takes time to grow. The difference in working terminology, way of working, types of deliverables, and mentality should be learned by all sides in a fostering and shared environment.
Contrary to research where the focus is to find novel approaches to new and existing problems, business is all about providing customer value. Machine learning for business applications should focus on providing business value. Oftentimes companies are too eager to start using innovative technologies that they don’t take their time to analyze where, when and how to apply machine learning applications. It is often best to start small on something that provides real and immediate value for the end-users. Make sure to include those who are impacted by the new technology. Provide trainings. User understanding and support are critical to get traction and improve the business you are looking for.
About the author
Wicher Visser is our Principal Architect based in Zürich, Switzerland. He leads the global Data Science & AI activities.