Skip to Main Content

Reproducible Research Practices: Software Best Practices

This guide presents best practices in documenting scientific research process to make the research reproducible.

Research Software

Research Software – Any source code or executables that researchers generate or integrate into the workflow of the scientific research. This code can be used for:

  • Fetching data
  • Preprocessing data
  • Performing analysis
  • Generating graphs and/or tables
  • Automating the analysis

The Research Software Life Cycle


Good Practices to Manage Your Research Software

What to document to about your research software:

  1. The experimental environment - including information about the environment, such as the hardware, the operating system, etc. 
  2. Description of the computing platform and prerequisites.
  3. A list of all the scripts/libraries including the input and output parameters and the functionality of each script.
  4. All the dependencies of the software.
  5. All the integrated libraries.
  6. The structure of the code/software and details about individual components.

Good practices in managing your software:

  • Attach examples of how the code works. 
  • Generate a list of all scripts, how to run them, and in what order.
  • Use tools that capture the experimental environment, such as Docker and ReproZIP.
  • Use metadata standards for each generated module. Each module should have at least the following:
    • Name of the module
    • Name of the project
    • Name of Author
    • Input and Output
    • Purpose of the Module
    • A brief Description 
  • Remember that naming files should be descriptive and consistent! 

For more information about how to document your code, check out this guide


Tools for Software Management

Research Software Management Tools and Services:

  1. Document your code - Check out this guide
  2. Share your Code - ​GitHub or ​Bitbucket
  3. Archive and Make your code citable -  Zenodo
  4. License your code - Check out this guide