Gewaltig Marc-Oliver, Cannon Robert
Blue Brain Project, École Polytechnique Fédérale de Lausanne, Lausanne, Switzerland.
Textensor Ltd., Edinburgh, United Kingdom.
PLoS Comput Biol. 2014 Jan;10(1):e1003376. doi: 10.1371/journal.pcbi.1003376. Epub 2014 Jan 23.
Almost all research work in computational neuroscience involves software. As researchers try to understand ever more complex systems, there is a continual need for software with new capabilities. Because of the wide range of questions being investigated, new software is often developed rapidly by individuals or small groups. In these cases, it can be hard to demonstrate that the software gives the right results. Software developers are often open about the code they produce and willing to share it, but there is little appreciation among potential users of the great diversity of software development practices and end results, and how this affects the suitability of software tools for use in research projects. To help clarify these issues, we have reviewed a range of software tools and asked how the culture and practice of software development affects their validity and trustworthiness. We identified four key questions that can be used to categorize software projects and correlate them with the type of product that results. The first question addresses what is being produced. The other three concern why, how, and by whom the work is done. The answers to these questions show strong correlations with the nature of the software being produced, and its suitability for particular purposes. Based on our findings, we suggest ways in which current software development practice in computational neuroscience can be improved and propose checklists to help developers, reviewers, and scientists to assess the quality of software and whether particular pieces of software are ready for use in research.
计算神经科学领域几乎所有的研究工作都涉及软件。随着研究人员试图理解日益复杂的系统,对具备新功能的软件的需求也在不断增加。由于所研究的问题范围广泛,新软件往往由个人或小团队迅速开发出来。在这些情况下,很难证明软件能给出正确的结果。软件开发人员通常对他们编写的代码持开放态度,并愿意分享,但潜在用户对软件开发实践和最终成果的巨大多样性,以及这如何影响软件工具在研究项目中的适用性,却知之甚少。为了帮助厘清这些问题,我们审查了一系列软件工具,并询问软件开发的文化和实践是如何影响其有效性和可信度的。我们确定了四个关键问题,可用于对软件项目进行分类,并将它们与所产生的产品类型相关联。第一个问题涉及正在生产的是什么。其他三个问题涉及工作为何进行、如何进行以及由谁来进行。这些问题的答案与所开发软件的性质及其对特定目的的适用性密切相关。基于我们的研究结果,我们提出了一些方法来改进计算神经科学当前的软件开发实践,并提出了清单,以帮助开发人员、评审人员和科学家评估软件的质量,以及特定软件是否准备好用于研究。