This title appears in the Scientific Report :
2013
Please use the identifier:
http://dx.doi.org/10.3389/fninf.2012.00031 in citations.
Please use the identifier: http://hdl.handle.net/2128/4926 in citations.
Increasing quality and managing complexity in neuroinformatics software development with continuous integration.
Increasing quality and managing complexity in neuroinformatics software development with continuous integration.
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...
Saved in:
Personal Name(s): | Zaytsev, Yury (Corresponding author) |
---|---|
Morrison, Abigail | |
Contributing Institute: |
Jülich Supercomputing Center; JSC Computational and Systems Neuroscience; INM-6 JARA - HPC; JARA-HPC Computational and Systems Neuroscience; IAS-6 |
Published in: | Frontiers in neuroinformatics, 6 (2013) 31, S. 1-16 |
Imprint: |
Lausanne
Frontiers Research Foundation
2013
|
DOI: |
10.3389/fninf.2012.00031 |
PubMed ID: |
23316158 |
Document Type: |
Journal Article |
Research Program: |
SimLab Neuroscience W2/W3 Professorinnen Programm der Helmholtzgemeinschaft Supercomputing and Modelling for the Human Brain Helmholtz Alliance on Systems Biology Signalling Pathways and Mechanisms in the Nervous System |
Link: |
Get full text OpenAccess |
Publikationsportal JuSER |
Please use the identifier: http://hdl.handle.net/2128/4926 in citations.
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. |