Training and e-Infrastructure for Research Software Development



CodeRefinery logo

We are working with students, researchers, Research Software Engineers from all disciplines and national e-infrastructure partners to advance FAIRness of Software management and development practices so that research groups can collaboratively develop, review, discuss, test, share and reuse their codes.

This is a project funded by the Nordic e-Infrastructure Collaboration (NeIC).

What are we doing?

  • We act as a hub for FAIR (Findable, Accessible, Interoperable, and Reusable) software (open by design) practices in the Nordic countries, namely in Iceland, Denmark, Norway, Sweden, Finland and Estonia.
  • We serve as a Nordic hub for research software engineers.
  • We provide a code repository hosting service that is open and free for all researchers based in universities and research institutes from Nordic countries.
  • We develop and maintain training material on software best practices for researchers that already write code. Our material addresses all academic disciplines and tries to be as programming language-independent as possible.
  • We offer training opportunities:
    • Carpentries 2-day workshops in the Nordics (6 workshops each year). The workshop fee is on us, only the instructor travel is on the host institution.
    • CodeRefinery 3-day workshops to grow researchers' software best practices skills. These workshops aim at consolidating knowledge learnt during Carpentries workshops and focus on teaching professional tools for efficiently developing and maintaining research software.
    • Instructor training workshops to learn to organise and teach Carpentries and CodeRefinery workshops. Our train the trainer program aims at building partnerships with Research Software Engineers and researchers who are willing to lead skills' transfer within their local communities in the Nordics.

How to get involved?

There are various ways to get involved and support us but please contact us if you have new ideas or suggestions. We'd love to hear from you!

Our participants

Over 500 people have attended a CodeRefinery workshop since the project started! Our workshop participants range from undergraduate students to full professors, and come from a variety of academic disciplines. The two charts below show academic position and discipline of workshop participants.

Disciplines and positions

What is our impact?

The long-term impact of CodeRefinery workshops is measured through a post-workshop survey which is sent out to all former participants 3-6 months after attending a workshop. The two graphs below show how former participants use various software development tools after attending a workshop (left), and how their code and collaboration with colleagues has changed (right). These results are based on 92 survey responses obtained to date.

Post-workshop survey

What do our participants say after attending a workshop?

"I'm more conscious about the way I write programs and organize their "organic" growth. I try to modularize more and write proper tests. I also use git more extensive to keep track about my different development branches"


"The main thing I got out of the workshop is that I'm now extensively using the issue-tracking systems on GitHub and GitLab. Also on one of my major projects we have moved towards having shorter lived feature branches and using merge requests for more frequent merges and less code divergence. I also started using GitLab's issues system more frequently. It made it easier for people in my lab to report bugs, and easier for me to keep track of them"
"My code became much more "sustainable" in the sense for others to read/use/modify it. In detail the most significant is improved use of git (forking workflow) and more strict "purity" of functions. Use of PyCharm increased speed of development"

"I take more time to think about long term solutions than "quick fixes" even if it's short of time. Another aspect is that I try to make the code reproducible in the sense of documentation, code readability, clear log files, etc, both for helping myself and my collaborators"

"My code is better documented, and I use version control much more. I have also started writing more unit tests"
"I write my codes now in such a way that the person who will be taking over my job would have less time figuring out what is going on. The emphasis of writing modular codes in the workshop was very helpful for me and for the people using my code"

"For me the most important thing was to learn to use git better. Now I make frequent commented commits so it is far easier to see what I actually did for me and others too"

"This was an extremely useful workshop. Thank you very much! I wish I had known this stuff already as a grad student 10+ years ago. It is now easier to collaborate with co-developers and easier to keep things in order and structured"

About

CodeRefinery is a project within the Nordic e-Infrastructure Collaboration (NeIC). NeIC is an organisational unit under NordForsk.

GitHub and Twitter

Contact

Radovan Bast
High Performance Computing Group
UiT The Arctic University of Norway
+47 776 44117
radovan.bast@uit.no