Speaker
Description
Computational research increasingly relies on custom software to process, analyse, and manage research data, yet most scientific software originates as project-specific analysis scripts developed to answer a particular research question. While such scripts are often sufficient for individual studies, the requirements for reproducibility, transparency, reuse, long-term maintenance, and collaborative development increase substantially as software evolves beyond its original purpose.
We argue that the transition from project-specific scripts to sustainable scientific software is not an automatic consequence of software evolution or increasing code complexity, but instead results from deliberately adopting a small set of development principles that promote software quality and scientific reproducibility. These include modular software design, version control, automated testing, comprehensive documentation, open licensing, persistent citation, and transparent development practices. Together, these elements enable software to become more robust, reusable, easier to validate, and more accessible to both users and contributors.
Drawing on our experience developing several open-source microscopy software projects, we illustrate how these principles can be integrated into real-world scientific software throughout its development. We discuss common challenges, design decisions, and lessons learned during the transition from project-specific scripts to sustainable research software. Although the examples originate from neuroscience, the underlying concepts are independent of discipline and broadly applicable across computational research.
Many of these principles are straightforward to adopt when considered early in a project’s lifetime. Yet collectively, they facilitate the transition from project-specific scripts to reusable open-source research software and strengthen reproducibility, transparency, collaboration, validation, and long-term maintainability.