Small steps towards sustainable and open research - or why you should care about Research Software Engineering

Aurélie Vancraeyenest, Samantha Wittke, Konstantin Stadler
August 16, 2024

A blog post summarizing the outcome of a discussion at Nordic-RSE conference May 2024 (https://nordic-rse.org/events/2024-in-person-conference/).

What is a Research Software Engineer (RSE)?

The short answer People striving for "Better software, better research"

The long answer Definition of Research Software (from keynote by Martin O'Reilly) Research software is software that one use to generate, process or analyse results that is intended to appear in a publication. It can be anything from a few lines of code, to a professionally developed software package.

A Research Software Engineer is a person who combines an intricate understanding of research with professional software engineering expertise. RSE often have background in academia and have specialized in computing related areas, be it either software development, data analysis, (high-performance) computing, etc.

Independently of their area of expertise, their common goal is better maintainability, sustainability of research software and better reproducibility of research outputs. They introduce best practice tools and techniques to research groups by showing the benefits. They also teach them how to use them independently and support them in their adoption of the new tools and practices. They usually work in tight collaboration with researchers and help in finding the right tools and technologies for each project.

What an RSE is not

Even though they are in close collaboration with IT services, RSEs are not IT support people, as in IT manager or IT system specialists. They have a dual background (research/coding), they take part in research projects and speak the "same language" as researchers.

Why would an organization need RSEs? - Current state of Research software

Does any of following scenario sound familiar?

  • A PhD/post doc has developed some really nice piece of code, but they left and no one knows anymore how to run it or develop it further.
  • Someone wrote some code long time ago that is used daily by a research group, but no one knows the technology in the research group anymore and it cannot be modified, updated or compiled anymore.
  • When a newcomer joins a team and starts familiarizing with analysis/modelling/etc tools, the only way is to "ask others who use it". No document or tutorials are available.
  • Some essential piece of software runs on a very old machine or on very old version of language and it's very difficult to replace or update, if even possible. This can even lead as far as stopping research activities in the team for some time
  • After an article is submitted, one reviewer ask for additional analysis, or slightly different plots, but upon running the code again, one cannot reproduce the plots/results anymore.

How can RSEs help research ?

Short answer

Improve the (re)usability of research software - including improving performance, reduce time and resource usage and ease on-boarding of new users.

Long answer

RSE can leverage all the above issues and more by accompanying researchers in their software development journey. RSEs' technical knowledge and creativity on solving problems allow seeing where researchers would benefit the most. Here are a few examples/use cases:

  • Researchers have great ideas, but might not know how, or have time to develop the corresponding tools
  • Help to get rid of repetitive or time consuming steps (that users don't want to do themselves) by introducing automatization
  • RSEs know about the FAIR principles and can apply them to research software
  • Write documentation so the information doesn't get lost when people leave
  • Make the regular technology updates to prevent that it become obsolete and break
  • Supporting when switching from laptop to compute clusters
  • Many groups need the same thing, RSEs know how to create flexible templates to simplify e.g. spinning up a website to present research outputs
  • … what other good examples?

They can also act as intermediate in technical discussions about computing needs, as they know the needs of researchers since they are involved in research in a daily basis, and are also technology-aware people.

As a summary, researchers with very deep expertise and RSEs with shallower but wider range of interests and skills complement each other very efficiently.

How can organisations help RSEs?

Many organisations already have people doin RSE work, but the people and the organisation might not be aware of the term RSE. To give those people a sense of belonging and knowing that there is others like them, organisations could:

  1. Support community involvement and self development

    • Give people room to be active in RSE communities, attend conferences and trainings beyond academic work.
  2. Acknowlege RSE work

    • Consider other factors than authorship when evaluating the scientific output
    • While the contribution of the RSE team/engineer might not be enough for a co-authorship, an acknowledgement in the paper can provide an adequate way to honor the work provided by RSEs
    • Introduce this practice in your organizational guidelines and courses
    • Provide example statements to acknowledge the work behind the scenes (e.g. "Code development and data management were supported by [names of your friendly RSEs or the RSE group].")
  3. Spread the word - be an RSE ambassador

    • Recognize and highlight RSE (often behind the scenes and non-academic) work
    • Invite RSEs to talk about their work
    • Support RSEs building their own network within the organisation (connect them to administration, other RSEs, researchers, etc)
  4. Make it a THING (administrative existance)

    • Hire RSEs
    • If you have them already, gather them ("virtual team" or central RSE group)
    • Offer support to spread good enough software practices in research groups
    • Train the trainer events are important and needed
    • Support formation of RSE groups by providing guidance about practices for forming a new entity in the organisation (group, service, etc) and finding the right integration points
    • Share organizational knowledge on how get internal funding for RSE-type work
  5. Funding

    • Inlcude RSEs at the stage of grant proposal writing
    • Provide central RSE funding to support smaller projects and internal tool developments
    • RSE benefits from open ended, non temporary funding - like other techical supports
    • training and collaboration funding (e.g. EuroCC, EOSC)

Get to know more

Does RSE sound like something you would need in your organisation, or want to hear more about what RSEs in the Nordics are about, please reach out to us at Nordic-RSE.

Other useful resources:

We would like to thank and acknowledge all the participants of the discussion "Why should organisations have an RSE/RSE group?" at the Nordic-RSE conference 2024 in Espoo, Finland.