Cargando…

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...

Descripción completa

Detalles Bibliográficos
Autores principales: Zaytsev, Yury V., Morrison, Abigail
Formato: Online Artículo Texto
Lenguaje:English
Publicado: Frontiers Media S.A. 2013
Materias:
Acceso en línea:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3539731/
https://www.ncbi.nlm.nih.gov/pubmed/23316158
http://dx.doi.org/10.3389/fninf.2012.00031
_version_ 1782255139735732224
author Zaytsev, Yury V.
Morrison, Abigail
author_facet Zaytsev, Yury V.
Morrison, Abigail
author_sort Zaytsev, Yury V.
collection PubMed
description 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.
format Online
Article
Text
id pubmed-3539731
institution National Center for Biotechnology Information
language English
publishDate 2013
publisher Frontiers Media S.A.
record_format MEDLINE/PubMed
spelling pubmed-35397312013-01-11 Increasing quality and managing complexity in neuroinformatics software development with continuous integration Zaytsev, Yury V. Morrison, Abigail Front Neuroinform Neuroscience 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. Frontiers Media S.A. 2013-01-03 /pmc/articles/PMC3539731/ /pubmed/23316158 http://dx.doi.org/10.3389/fninf.2012.00031 Text en Copyright © 2013 Zaytsev and Morrison. http://creativecommons.org/licenses/by/3.0/ This is an open-access article distributed under the terms of the Creative Commons Attribution License, which permits use, distribution and reproduction in other forums, provided the original authors and source are credited and subject to any copyright notices concerning any third-party graphics etc.
spellingShingle Neuroscience
Zaytsev, Yury V.
Morrison, Abigail
Increasing quality and managing complexity in neuroinformatics software development with continuous integration
title Increasing quality and managing complexity in neuroinformatics software development with continuous integration
title_full Increasing quality and managing complexity in neuroinformatics software development with continuous integration
title_fullStr Increasing quality and managing complexity in neuroinformatics software development with continuous integration
title_full_unstemmed Increasing quality and managing complexity in neuroinformatics software development with continuous integration
title_short Increasing quality and managing complexity in neuroinformatics software development with continuous integration
title_sort increasing quality and managing complexity in neuroinformatics software development with continuous integration
topic Neuroscience
url https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3539731/
https://www.ncbi.nlm.nih.gov/pubmed/23316158
http://dx.doi.org/10.3389/fninf.2012.00031
work_keys_str_mv AT zaytsevyuryv increasingqualityandmanagingcomplexityinneuroinformaticssoftwaredevelopmentwithcontinuousintegration
AT morrisonabigail increasingqualityandmanagingcomplexityinneuroinformaticssoftwaredevelopmentwithcontinuousintegration