Navigating the challenges in creating complex data systems: a development philosophy
Not on the map. Why?
Abstract (arXiv)
In this perspective, we argue that despite the democratization of powerful tools for data science and machine learning over the last decade, developing the code for a trustworthy and effective data science system (DSS) is getting harder. Perverse incentives and a lack of widespread software engineering (SE) skills are among many root causes we identify that naturally give rise to the current systemic crisis in reproducibility of DSSs. We analyze why SE and building large complex systems is, in general, hard. Based on these insights, we identify how SE addresses those difficulties and how we can apply and generalize SE methods to construct DSSs that are fit for purpose. We advocate two key development philosophies, namely that one should incrementally grow -- not biphasically plan and build -- DSSs, and one should always employ two types of feedback loops during development: one which tests the code's correctness and another that evaluates the code's efficacy.
Key facts. Cited by 2 papers in the map (data through 7 Oct 2026). Builds on 3 of its 43 references that are in the map. First posted on arXiv 21 Oct 2022.
Builds on
3 of 43 references.
References · 3
- 2020Improving Reproducibility in Machine Learning Research (A Report from the NeurIPS 2019 Reproducibility Program)cited by 318
- 2020Common pitfalls and recommendations for using machine learning to detect and prognosticate for COVID-19 using chest radiographs and CT scanscited by 158
- 2020The Significance Filter, the Winner's Curse and the Need to Shrinkcited by 1
Built on by
Citing papers per year: 2023: 2.
2 papers.