No Title

Good practices will save the earth!

Good practices in software engineering are essential to reduce energy usage. Without proper (automated) testing, documentation and sharing, resources are wasted constantly.

Examples are:

  • running (and failing) untested or badly tested workflows in high-resource jobs
  • having to redo a lot of work because things are lost as they were not stored/versioned properly
  • having to redo someone elses work because it was not properly published or licensed

CodeRefinery is a very good resource for learning best practices in programming and data management for research software. Their full blown course lasts 6 days and goes fairly deep into the most important aspects of software development.

The “CodeRefinery in 1 hour” course condenses most of the materials in a 1 hours crash-course. For this exercise we will follow the contents of this crash course. Below you will find the links to the six course chapters on various of research software development.

Besides the links to the coderefinery course, in each of the sections below you will also find links to corresponding modules in the Research Software Support platform.. These materials are less hands-on because they are made for research supporters, however they often give you a nice conceptual overview of the concepts. You can regard these as optional additional materials.

0. Example project

The course starts with introducing an example project that will be used throughout the course.

You can also choose to follow the exercises using your own software project, in that case start with step 1. Throughout the exercises, the example project will be used, we trust you can translate the steps to your own project. If you notice that this doesn't work for you, try using the example project.

If you want to use the example project, follow the link below and read up on simulating the motion of planets. Example project: simulating the motion of planets

1. Version control and code review

Follow the materials and exercises from coderefinery about version control and code review.

Additional Research Software Support materials on software version control

2. Documentation

Follow the materials and exercises from coderefinery about documentation.

Additional Research Software Support materials on documentation

3. Reproducible dependencies and environments

Follow the materials and exercises from coderefinery about reproducible dependencies and environments

Additional Research Software Support materials on distributing software

4. Testing

Follow the materials and exercises from coderefinery about Testing

Additional Research Software Support materials on testing

5. Automation and reproducible workflows

Follow the materials and exercises from coderefinery about Automation and reproducible workflows

6. Sharing (licensing and publishing)

Follow the materials and exercises from coderefinery about Sharing (licensing and publishing)

Additional Research Software Support materials on licenses, publication and citation,