-
Notifications
You must be signed in to change notification settings - Fork 23
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #907 from coderefinery/celebration
Celebratory blogpost
- Loading branch information
Showing
3 changed files
with
253 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,251 @@ | ||
+++ | ||
title = "CodeRefinery - Celebrating eight years" | ||
slug = "2024/09/19/celebrating-8-years" | ||
description = "Continuing eight years of collaboratively teaching good enough research software engineering practices" | ||
|
||
[extra] | ||
authors = "Samantha Wittke" | ||
+++ | ||
|
||
<img width="600px" src="/blog/2024-09-19-celebration/cr-small.jpg" alt="CodeRefinery logo as a hand-carved wooden stand"> | ||
|
||
<!-- toc --> | ||
|
||
## CodeRefinery started 8 years ago | ||
|
||
In October 2024 the CodeRefinery project was celebrating the conclusion of its | ||
8th year of existence. During that time about 9 online and 28 in-person | ||
workshops were held by ~30 instructors, organizers and facilitators teaching | ||
good enough research software engineering practices to ~3000 participants from | ||
~20 countries, of many scientific fields, career stages and preferred | ||
programming languages. We would like to celebrate this achievement with you, | ||
by looking back at the history and achievements unlocked over the years and | ||
also ask you to share your best memories. Spoiler: Even though this is a | ||
"looking back" post, CodeRefinery will not cease to exist anytime soon if we | ||
can help it. We'd just like to celebrate the project and highlight the | ||
contributions of key members. | ||
|
||
The project grew out of an initially local course (given at KTH Stockholm in | ||
2014 and 2015) and in 2016 became a Nordic project. Rossen Apostolov (KTH | ||
Stockholm) submitted a proposal to the Nordic e-Infrastructure Collaboration | ||
(NeIC) in 2015 and NeIC quickly recognized it as a potentially impactful | ||
project worth co-funding. The project was started in 2016, under the leadership | ||
of Radovan Bast, project manager of CodeRefinery for the whole duration of the | ||
project. | ||
|
||
Thor Wikfeldt remembers: "[...] I have had the privilege of working with | ||
Radovan Bast since 2016 when the CodeRefinery project was launched, and I | ||
joined under his leadership. Among all the highly competent individuals I have | ||
encountered in my career, Radovan stands out for his relentless dedication and | ||
selfless commitment to making a meaningful impact on the world. He has | ||
inspired me to not only become a better teacher and developer of training | ||
materials but also to be more productive, collaborative and generous in my | ||
professional life. Radovan took CodeRefinery from a mere concept to a | ||
pioneering educational project that is now well- known not only in the Nordic | ||
region (where it started) but globally. [...] " | ||
|
||
|
||
## What is CodeRefinery? | ||
|
||
CodeRefinery acts as a hub for FAIR (Findable, Accessible, Interoperable, and | ||
Reusable) software practices. It currently focuses on the Nordic/Baltic | ||
countries, but aims to expand beyond this region. CodeRefinery aims to operate | ||
as a community project with support from academic organizations. The project | ||
started in 2016 and has developed a broad curriculum of openly maintained and | ||
reviewed lessons, has taught hundreds of participants across all academic | ||
disciplines, and has managed to build a community of instructors, learners, | ||
team leads (who help learners during exercises), expert helpers (who support | ||
team leads), local organizers and partner organizations. | ||
|
||
The project idea/directive grew out of two courses given at PDC/KTH in 2014 and | ||
2015, which focused on research software engineering tools and techniques. The | ||
courses were popular and it was clear that the demand is not limited to the | ||
Stockholm region and we approached NeIC to bring this project to a Nordic | ||
level, both to have more impact, but also to connect instructors across Nordic | ||
borders. The first CodeRefinery workshop was given late 2016 and since then | ||
the lesson material has evolved a lot and we have delivered many more | ||
workshops, both in-person and online. | ||
|
||
CodeRefinery has established itself as a highly successful initiative that | ||
improves coding skills at an intermediate level, bridging the gap between | ||
Software Carpentry for beginners, and the more advanced/bespoke training | ||
offered by other universities and HPC/computational research initiatives. | ||
|
||
The objectives of the CodeRefinery project are: | ||
• Organize and deliver workshops and events | ||
• Develop and maintain a lesson portfolio | ||
• Build a community and network of instructors and volunteer helpers | ||
• Operate a Nordic GitLab service | ||
• Support the community of Nordic research software engineers | ||
|
||
|
||
## CodeRefinery workshops | ||
|
||
The CodeRefinery project provides open, reusable and self-learning ready lesson | ||
materials developed by experts from different countries, organizations and | ||
scientific backgrounds. CodeRefinery focuses on maintaining collaboration in | ||
lesson development, teaching and workshop organization. Workshops with multiple | ||
roles especially highlight the value of collaborative efforts. | ||
|
||
The workshops are focused around exercises and discussions and participants are | ||
encouraged to form teams for these sessions. The learning outcomes for each | ||
lesson are defined and shared in the beginning of each lesson. | ||
|
||
We kindly request feedback from participants after each workshop day. Feedback | ||
is gathered using known tools with no separation between workshop and feedback. | ||
If necessary and possible, given feedback is already implemented for the next | ||
workshop day. | ||
|
||
The CodeRefinery project maintains manuals with a collection of work processes | ||
and ideas (<https://coderefinery.github.io/manuals/>). It summarizes how | ||
meetings, workshops and other topics work and serves as basis for e.g. the | ||
helper onboarding for the workshop. | ||
|
||
|
||
## Bring your own classroom | ||
|
||
When switching from in-person to online workshops the CodeRefinery team put a | ||
lot of effort in embracing the online workshop format. A lot of thought has | ||
been put into our online hand-on, demo and screen sharing setups in order to | ||
provide the best possible learning experience to participants. | ||
|
||
Since 2020 we had multiple local classrooms join our workshop and have adapted | ||
the format to accommodate these special circumstances. | ||
|
||
Paula Martinez Lavanchy shares: "[...][W]e have been ‘bringing our own class’ to | ||
the CodeRefinery workshops by joining the streaming of the lessons from the classroom with | ||
our participants and helpers. | ||
TU Delft researchers provided very positive feedback about this initiative reflected in | ||
comments such as: | ||
“It's great and extremely useful. If it was it for me I would make it mandatory knowledge. It's | ||
really important that TU Delft continues promoting these workshops.” | ||
“Excellent workshop: the graduate school would be so much better with more of these | ||
practical & technical workshops” | ||
The CodeRefinery initiative has helped us and benefit TU Delft researchers in several ways: | ||
- The possibility of joining the workshops allowed us to advance with the | ||
implementation of our Vision for Research Data & Software management training | ||
and the implementation of TU Delft Research Software Policy by providing high | ||
quality and well-received training on FAIR software practices.• | ||
- The involvement of our data stewards, software engineers and trainers as helpers in | ||
the CodeRefinery workshops have also provided them with a great opportunity to | ||
continuously improve their skills and learn from this great community. | ||
- The CodeRefinery learning materials are openly available and of excellent quality. | ||
We often refer our researchers to use them as consultation materials on our websites | ||
and/or guides. [...]" | ||
|
||
|
||
## Sharing experiences and support for doing your own thing | ||
|
||
But the CodeRefinery project does not only focus on own workshops, it also | ||
wants to make it easier for others to provide clean and functional lesson | ||
materials with all the features needed for computational topics by providing a | ||
public lesson template (<https://github.com/coderefinery/sphinx-lesson>). In | ||
addition, the ways that teaching has worked well for CodeRefinery are shared | ||
through train the trainer workshops, which have been presented in different | ||
forums and to various groups (<https://coderefinery.github.io/train-the-trainer/>). | ||
|
||
The lesson development process always involves multiple experts. All | ||
discussions and reviews are public and can be found on our GitHub pages | ||
(<https://github.com/coderefinery>). | ||
|
||
Since it is free and open to reuse, there is no full overview about who has | ||
reused CodeRefinery materials. But when talking to people at conferences and | ||
other events we often get to hear that teachers are happily reusing the | ||
CodeRefinery materials for their lectures. | ||
|
||
Two larger programs that have been built on top of CodeRefinery materials are | ||
the Netherlands eScience Center workshop on "Good practices in research | ||
software development" | ||
(<https://www.esciencecenter.nl/event/good-practices-in-research-software-development-5/>) | ||
and the "EuroCC best practices in HPC training" program lead by ENCCS Sweden | ||
(<https://enccs.github.io/instructor-training/>). | ||
|
||
Mateusz Kuzak and his team from the Netherlands eScience center explains: | ||
"[...] At the Center, we have been successfully using the training materials | ||
developed by the CodeRefinery project since 2020. At that time, CodeRefinery | ||
filled the gap in the intermediate research software skills for researchers. | ||
We already delivered training based on the Carpentries and were looking for | ||
more advanced content for researchers already doing some programming. What I | ||
appreciate about the project is that Radovan and others didn’t just reinvent | ||
everything. They build the Trainer the Trainer programme on top of excellent | ||
Carpentries Instructor Training. They also realised that the pedagogical | ||
methodology used by the Carpentries, heavily dependent on live coding, would | ||
not work that well for intermediate audiences. They developed a curriculum | ||
rich in independent work on complex exercises. At the eScience Center, we found | ||
that approach more effective for less novice learners. CodeRefinery was also | ||
very innovative, introducing a distributed online approach with many helpers | ||
supporting locally or in online breakout rooms. I believe that helps with | ||
scaling the course and reaching a new audience that otherwise wouldn't be able | ||
to access this training. We at the eScience Center will continue reusing and | ||
contributing to the CodeRefinery project. [...]" | ||
|
||
|
||
## More than just workshops | ||
|
||
The main CodeRefinery workshop is organized twice a year and it is free and | ||
open for everyone. Everyone is encouraged to ask their questions and discuss | ||
the topics that interest them in a collaborative document. Instructors have a | ||
variety of different scientific and cultural backgrounds and are in different | ||
stages in their career. After each workshop participants are encouraged to | ||
join the community which mainly lives in the CodeRefinery Zulip chat that to | ||
date is a home to 446 people with about 10% being really active. The chat is | ||
also home to the Nordic-RSE and Nordic-HPC communities which are tightly knit | ||
with CodeRefinery. The chat serves as a space for planning, support and | ||
discussions around different topics. Participants of the CodeRefinery workshops | ||
are encouraged to use the chat also beyond the workshop to ask their questions | ||
around workshop topics and beyond. Some participants even have found their way | ||
into the project this way. | ||
|
||
While the workshops are the main event for CodeRefinery, it is also a community | ||
with an open heart for supporting research and providing courses on a | ||
researchers level. Research Software Hour was born from the community, and has | ||
brought topics of Research Software Engineering that you cannot teach in a | ||
class to the research community (<https://researchsoftwarehour.github.io/>) | ||
hosted by the nominee and others. | ||
|
||
A Zenodo community is available to collect all CodeRefinery and CodeRefinery related outputs: | ||
<https://zenodo.org/communities/coderefinery/records?q=&l=list&p=1&s=10&sort=newest> | ||
|
||
CodeRefinery is also active on social media: LinkedIn (314 followers), X (860 followers) and Mastodon (296 followers). | ||
|
||
|
||
## Reaching out | ||
|
||
The CodeRefinery project has been mentioned alongside other successful programs such as the Carpentries in Research Software Engineering related publications: | ||
|
||
- I. A. Cosden, K. McHenry and D. S. Katz, "Research Software Engineers: Career Entry Points and Training Gaps," in Computing in Science & Engineering, | ||
vol. 24, no. 6, pp. 14-21, Nov.-Dec. 2022, doi: 10.1109/MCSE.2023.3258630 or on arxiv; page 7 | ||
|
||
- US Research Software Engineer Association, & IEEE Computer Society. (2023). Research Software Engineers: Creating a Career Path—and a Career. | ||
Zenodo. <https://doi.org/10.5281/zenodo.10073233> ; page 19 | ||
|
||
- Barker, M., Breitmoser, E., Broadbent, P., Chue Hong, N., Hettrick, S., Lampaki, I., Quinn, A., & Taylor, R. (2024). Software and skills for research computing in the UK. | ||
Zenodo. <https://doi.org/10.5281/zenodo.10473186> ; page 15 | ||
|
||
A collection of reports (<https://coderefinery.org/about/reports/>) and | ||
presentations (<https://coderefinery.org/about/presentations/>) about the project | ||
are collected on our website. | ||
|
||
Project members have been actively seeking opportunities to spread the word and | ||
share the experiences from running the CodeRefinery workshops at conferences in | ||
the research computing world. Among others the project has been presented at | ||
Supercomputing (SC) conference in the US, International SuperComputing (ISC) in | ||
Germany, SIAM, RSECon and CarpentryCon in recent years. | ||
|
||
|
||
## The future | ||
|
||
We are currently in the third round of funding by NeiC (one person to | ||
coordinate the efforts, other partners support in-kind) and considering our | ||
next steps. | ||
|
||
One thing is clear: CodeRefinery will not end or cease to exist. | ||
|
||
We are in contact with funders and past and potential future organizations to | ||
make these efforts go on and likely we will continue the funded coordination + | ||
in-kind partners model. For other structures we may collaborate with other | ||
organizations and projects. | ||
|
||
If this project and its mission sounds like something you would like to join or | ||
support, please contact support@coderefinery.org and we can discuss in more | ||
detail. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
+++ | ||
+++ |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.