Small to medium-scale data science experiments often rely on research software developed ad-hoc by individual scientists or small teams. Often there is no time to make the research software fast, reusable, and open access. The consequence is twofold. First, subsequent researchers must spend significant work hours building upon the proposed hypotheses or experimental framework. In the worst case, others cannot reproduce the experiment and reuse the findings for subsequent research. Second, suppose the ad-hoc research software fails during often long-running computationally expensive experiments. In that case, the overall effort to iteratively improve the software and rerun the experiments creates significant time pressure on the researchers. We suggest making caching an integral part of the research software development process, even before the first line of code is written. This article outlines caching recommendations for developing research software in data science projects. Our recommendations provide a perspective to circumvent common problems such as propriety dependence, speed, etc. At the same time, caching contributes to the reproducibility of experiments in the open science workflow. Concerning the four guiding principles, i.e., Findability, Accessibility, Interoperability, and Reusability (FAIR), we foresee that including the proposed recommendation in a research software development will make the data related to that software FAIRer for both machines and humans. We exhibit the usefulness of some of the proposed recommendations on our recently completed research software project in mathematical information retrieval.
翻译:中小型数据科学实验往往依靠个别科学家或小团队开发的研究软件。通常没有时间使研究软件快速、可再使用和开放访问。结果有两个方面。首先,随后的研究人员必须花大量工时来建立拟议的假设或实验框架。在最坏的情况下,其他人不能复制试验,不能将研究结果再用于随后的研究。第二,假设特别热研究软件在经常长期进行的费用昂贵的计算实验中失败。在这种情况下,迭接改进软件和重新运行实验的总体努力给研究人员造成了巨大的时间压力。我们建议将研究软件开发过程的不可分割的一部分放在研究代码第一行之前。这篇文章概述了在数据科学项目中开发研究软件的建议。我们的建议为避免诸如专有依赖、速度等常见问题提供了一种视角。与此同时,在开放科学工作流程中,不断累积的实验有助于重新推广。关于四项指导原则,即可查找性、可获取性、可互可操作性和可再读性,以及可复制性等,我们建议将研究软件开发过程的一部分放在研究软件中。我们设想,我们最近提出的有关人类研究的数学应用性研究项目将包含我们所拟的、软件应用性研究项目的建议。