Key points are not available for this paper at this time.
As defined by the NIH, Research software includes "source code files, algorithms, scripts, computational workflows, and executables that are created during the research process or for a research purpose."As an organization committed to open science, we understand the importance of providing reproducible and reusable code, and tracking the provenance of data often linked to executed code.Most of the software we build at Sage Bionetworks ("Sage") is accessible via our GitHub organization.What existing standards or criteria do we use to evaluate the openness, FAIRness, quality, and/or security of the software we share or reuse?Maintaining high-quality, open-source software takes considerable resources, but can have a major impact on the scientific community.Research software has two broad categories: purpose-built scripts with a narrow scope of applications and reusable software tools with a broader scope of applications.Purpose-built scripts may not require all the criteria that go into building a robust, reusable research software tool, but there are instances where these scripts become (through need, desire, or accident) reused software tools.Transitioning can often be more difficult than starting from scratch, so it is good practice to follow the minimal requirements of being reusable and reproducible (https://github.com/paperswithcode/releasing-research-code,https://www.openmodelingfoundation.org/standards/reusability/#minimal-reusability-standards).The broader criteria for robust reusable research software tools include: Addressing a ProblemAll research software should be geared toward addressing a specific set of problems.Before implementation, the use cases and requirements of the software should be thoughtfully documented to ensure that they address the scope and potential usage of the tool. Version ControlEffective version control, through platforms like GitHub or GitLab, facilitates collaboration and version tracking of the source code.Developers can collaborate and provide constructive feedback through pull requests while tracking the evolution of the codebase. DocumentationDocumentation is a crucial companion, offering insights into functionality, usage, and maintenance.The codebase must be established with an initial README.md,LICENSE, and CONTRIBUTING.md,which will facilitate managing expectations regarding usage, sharing, and development.Research software can demand
Yu et al. (Wed,) studied this question.