Skip to main content

CodeRefinery Enters Sustainability Phase

Johan Hellsvik, PDC, and Diana Iuşan, UPPMAX

Across all scientific disciplines, there is currently a great emphasis on reproducible research and Findable, Accessible, Interoperable, Reusable (FAIR) data so that research provides the greatest benefit to society. Custom-written research software and workflows are often a central part of research projects. This type of research software is the key to reproducibility and data management, but many researchers do not have training in software development beyond basic programming. Thus, it is difficult for the researchers producing such software to ensure that it is reusable by others, or even correct in the hands of the original author(s). The shift towards research enabled by software requires a profound and continuous transformation of research practices. A major challenge for the research community is the pressure to gain and maintain the necessary software skills in a very limited time while both technology and best practices evolve rapidly. These tools and practices are almost never part of a traditional academic curriculum, and learning foundational coding, data science skills, and associated best software practices in isolation without a support structure is inefficient and costly, both for the individual researcher and the research community as a whole.

The NeIC-funded CodeRefinery project  has been addressing these challenges for the past five years by teaching researchers about key tools and best practices. CodeRefinery is supporting students and researchers by advancing the FAIRness of software and development practices so that they can collaboratively develop, review, discuss, test, share, and reuse their codes. The standard workshop curriculum consists of lessons and exercises about basic and collaborative Git, code review, social coding and open software, reproducible research, Jupyter notebooks, code documentation, automated testing, and modular code development.

Up to now, more than 1,600 researchers from the Nordic countries have been trained and three instructor training events were held. In the past 18 months alone, four online workshops were held with an average number of 100 participants. The large-scale workshops were made possible with the additional support of the CodeRefinery community, which contributed 8 volunteer instructors and over 80 volunteer helpers for the hands-on sessions. The long-term impact of CodeRefinery workshops, measured through post-workshop surveys (3-6 months later) shows that, for example, about 60% of the learners have improved their usage of version control. Yet, the tools taught in CodeRefinery workshops are rarely part of academic curricula. Also, the need for training in research software engineering will only increase and become more diverse.

Acknowledging the remarkable contribution that CodeRefinery has made to FAIR practices and open science, NeIC will continue to fund the project for a third period. Thus, in 2022, CodeRefinery will enter a sustainability phase, the aim of which will be the help to ensure the long-lasting effects of the project, including maintaining the learning materials and further strengthening the community. Together with other organizations from Norway, Finland, and Denmark, the Swedish National Infrastructure for Computing (SNIC) will be contributing in-kind to the project, with staff working on CodeRefinery at both PDC and the Uppsala Multidisciplinary Center for Advanced Computational Science (UPPMAX). The collaboration between the project partners and the academic community in general will ensure that CodeRefinery continues to provide high-quality events in a variety of forms: online and in-person workshops, hackathons, and community meetups. In addition to the standard curriculum that has been offered up to now, there will be an increased focus on community-driven workshop delivery to facilitate on-demand workshops and to turn the Nordic network into a collaboration platform for other workshops.

For more information about the CodeRefinery project and upcoming workshops, please visit . If you would like to get in touch with the CodeRefinery community, you may consider joining the chat .