Good enough FAIR software

FAIR
Licenses
Software
Author

Esther Plomp

Published

September 3, 2022

How to make your software good enough FAIR? Post based on presentation by Neil Chue Hong.

FAIR

Findable:

  • Make your software easier to discover by using descriptive metadata.

  • Publish a citation for your software.

  • Add it to a community registry, if one exists.

Accessible:

Put your source code in a code repository, and deposit major versions in a preservation repository to get a DOI.

Interoperable:

  • Describe the functionality of your software.

  • Use open data formats that meet domain-relevant community standards.

  • Use libraries for common functionality.

  • Provide references to associated research objects.

  • Modularise your code and document design.

Reusable:

  • Choose a license and apply it to your software.

  • Document dependencies.

  • Ensure that others can understand and execute your code.

Software publishing options by Neil Chue Hong

Code repository Data repository Produce runnable version Software registry Software article
Example Source code is in GitHub, GitLab or BitBucket with open license Source code deposited in Zenodo, 4TU.ResearchData Jupyter Notebook in Binder, Capsule in CodeOcean, Docker or Singularity container, NextFlow workflow. Package for CRAN, PyPI, etc Create an entry in a community registries e.g. CIG (geodynamics), RRID, swMath (mathematics). NLeSC RSD

Publish software paper in JORS, JOSS, SoftwareX, etc.

Publish executable research article in GigaByte

Or choose a discipline specific journal.

Advantages

Discoverable

Fits with development workflow

No waiting before available

Archived

Persistent identifier and metadata

Little/no wait before available

Enable direct reuse

Can be given identifiers

Makes available in location where users search

Indexed

Easier to find

Often provides identifier

May show citations

Easily citable

Peer reviewed

Can describe software design

Easier for developers to write

Easy to reach target audience

Understood by promotion committees

Disadvantages

Not archived

Harder to cite

Not easy to find if poorly described / documented

Direct software citations not accepted by all journals Normally requires additional effort / resources Not available in every domain

Software not always archived

Publishing in domain specific journals may take a long time

More information