Institute of Neuroscience and Medicine (INM-6), Computational and Systems Neuroscience, Jülich Research Center Jülich, Germany ; Simulation Laboratory Neuroscience - Bernstein Facility for Simulation and Database Technology, Institute for Advanced Simulation, Jülich Research Center, Jülich Aachen Research Alliance Jülich, Germany ; Faculty of Biology, Albert-Ludwig University of Freiburg Freiburg im Breisgau, Germany.
Front Neuroinform. 2013 Jan 3;6:31. doi: 10.3389/fninf.2012.00031. eCollection 2012.
High quality neuroscience research requires accurate, reliable and well maintained neuroinformatics applications. As software projects become larger, offering more functionality and developing a denser web of interdependence between their component parts, we need more sophisticated methods to manage their complexity. If complexity is allowed to get out of hand, either the quality of the software or the speed of development suffer, and in many cases both. To address this issue, here we develop a scalable, low-cost and open source solution for continuous integration (CI), a technique which ensures the quality of changes to the code base during the development procedure, rather than relying on a pre-release integration phase. We demonstrate that a CI-based workflow, due to rapid feedback about code integration problems and tracking of code health measures, enabled substantial increases in productivity for a major neuroinformatics project and additional benefits for three further projects. Beyond the scope of the current study, we identify multiple areas in which CI can be employed to further increase the quality of neuroinformatics projects by improving development practices and incorporating appropriate development tools. Finally, we discuss what measures can be taken to lower the barrier for developers of neuroinformatics applications to adopt this useful technique.
高质量的神经科学研究需要准确、可靠和维护良好的神经信息学应用程序。随着软件项目的规模越来越大,提供更多的功能,并在其组件之间形成更密集的相互依存关系网络,我们需要更复杂的方法来管理其复杂性。如果复杂性失控,要么软件的质量,要么开发速度会受到影响,在许多情况下,两者都会受到影响。为了解决这个问题,我们在这里开发了一种可扩展的、低成本的开源持续集成 (CI) 解决方案,这是一种在开发过程中确保代码库变更质量的技术,而不是依赖预发布集成阶段。我们证明,由于快速反馈代码集成问题和跟踪代码健康措施,基于 CI 的工作流程使一个主要的神经信息学项目的生产力得到了实质性的提高,并为另外三个项目带来了额外的好处。在当前研究的范围之外,我们确定了多个可以通过改进开发实践和纳入适当的开发工具来进一步提高神经信息学项目质量的 CI 应用领域。最后,我们讨论了可以采取哪些措施来降低神经信息学应用程序开发者采用这一有用技术的门槛。