What is 'R'? What is 'S'? What is 'E'?

Richard Darst
August 11, 2021

Who is considered an Research Software Engineer (RSE)? This has surely been discussed plenty, but at the unconference we had our own little chat about it.

Perhaps as you might expect, we didn't come up with any amazing answers. However, we did make a summary of what happens if you remove each term from "RSE", which perhaps provides the most insight we found.

Remove Research (Software Engineer)

Research is more explorative and unknown (and requires more creativity) than following a specification. It is not only doing "the research" but also other things that support research or research infrastructure. There didn't seem to be strong opinions that it had to be academic, but this wasn't a major discussion point.

If you hire a software engineer instead of a RSE, you might not have practical research value (or might right now but not in five years). You might miss open science, reproducibility, flexibility, and it might not be easy to modify and reuse by other researchers who don't have as deep of software training.

Remove Software (Research Engineer)

In some ways, "software" is the trickiest term to define. Of course "software" is obvious, but in practice our community is not only about software but about specialist support of computing in general. Its seemed that most of the attendees took a broad view of software: it doesn't have to be just directly software used for research or large, but could be (for example) other infrastructure software or small things.

Perhaps more ambiguous are roles such as data engineers/data manages/computer cluster administrators. There wasn't any motivation to exclude people like this, though their skillset would be slightly different (though it's important that we all share some of the basics!). At the very least, these are people that we can very well include in our community of specialist research supporters.

If you hire a Research Engineer instead of a RSE, you might expect that they are not computational. These days, lacking other named communities, a RSE could very well be a data engineer, or focus on computational infrastructure, or a wide variety of other similar topics.

Remove Engineer (Research Software Person)

In some localities, "engineer" is a licensed profession or degree. While we acknowledge this, it didn't seem to be the dominant factor in our definition. "Engineer" can also be a particular degree title, but that was also not a significant factor in our definition.

Instead, the "engineering" is maintaining the overall "structural integrity" of the project. They are in some ways more practical and have a bigger overall view of keeping the project together (see other references of "software developer" vs. "software engineer"). The engineer will make sure that the right tools are used and it will be designed in a maintainable way. Their jobs might also include watching over the product long-term.

If you hire a Research Software Person instead of a RSE, they can make something but it might start falling apart after a few years, might not be modifiable, might not use best practices for reproducibility and distribution - basically, the problems in science that RSEs are made to solve.

Summary

If you wanted a definition of "Research Software Engineer", we don't have it - but right now, that is probably an impossible task. However, we do hope it has made you think about what it means to you, and appreciate the diversity of the community.

If you want to discuss more, why not join the Nordic-RSE community chat and discuss more?