---
# System prepended metadata

title: What is "R".  What is "S".  What is "E"

---

# What is "R".  What is "S".  What is "E"

"RSE" was an invented term, and I have seen many different ways to interpret it, and most have been very inclusive. What do we mean by "Research": is it just academic? no. What do we mean by "software"? It's more than just software, I always say that data and computing specialists should be included, and I think it would also extend to many of the infrastructure admins. Finally, what does "engineer" mean. Is it only engineer? Probably not only. I would be happy to have a discussion on this, but I would prefer someone other than me to host it.

(What if each of us adds our own opinions to each of these topics?)

**R**esearch:
- Is this the most clear one (in part because it is so broad and vague): anything related to research?
- What complexities are there?
  - If you write a simulation code, are you doing research? (In my field, yes. In many fields, no.)
- [name=florido] Research: scientific research or research for tools used by scientific research?
- Contributing new knowledge and innovation.
- [name=rkdarst] When would a group hire a "Software engineer" vs when would they hire a "Research software engineer"?  I think that will help to figure this out.
  - [name=rkdarst] when you precisely know what you want in advance and can specify it, I would suggest a SE rather than a RSE
      - [name=ti] :+1: (see my note at the bottom)
- [name=rkdarst] To me the essence here is that the work is more exploratory and you know the end state even less than most professional software projects: you have to have some of the research mindset in order to work with your customers and understand the flexibility that may be needed in the future. (reproducibility, openness, turnover of research groups)
- [name=jarno] Exploration that require more creativity than anything else.
- [name=ti] explorative - expanding human knowledge - not (actually) knowing where we're going until we've gotten there
- [name=florido] Many times skilled students with no PhD (master, bachelors) give strong contributions to the scientific world they join. Maybe a way to attract them is to give them a RSE career path?


**S**oftware:
- How many lines of code do you need to write before that becomes a "software"?
- If you make a process for big data handling?
- RD: At another meeting I heard people say "should HPC infra people be included in RSE?" that's what made me realize this term has gotten away from the original definition
- [name=florido] is software just scientific software libraries, or also infrastructure software that is used to run scientific software?
- [name=jarno] A collection of code written for a purpose, including documentation, tests and so on.
- [name=rkdarst] This is the least important term for me: roughly, anything related to computation.  The term "research engineer" thus fits more for me.
- [name=ti] anything that runs - even if it's just a handful of lines of code - you can do it well (understandable, tested, documented) or badly



**E**ngineer: 
- Not sure about that one: must an RSE have an engineering diploma? Can someone who has followed a PhD path become RSE?
- I got the idea that in some countries, "Engineer" is a protected/licensed profession
- To be a researcher, you need to do research. So usually have a PhD. To be an engineer, there is little requirement.
  - In some fields you need to be registered and have a proper degree to be an engineer.
  - You mean "chartered" as in the UK, where they have different levels of chartered people in various areas?
  - Maybe existing RSEs should "adopt" new RSE applicants who would have to demonstrate what they do to be part of the NRSE community?
- [name=florido] To me this is a broad term for those who find structured solutions to problems. I do not think titles are important.
  - It is important because all those who claim that they are RSE are not doing the same type of work at all, and I do not recognize myself in all the definitions given
  - If anybody can become part of the RSEs then what differentiates us from other organizations?
- [name=rkdarst] 
- [name=jarno] Someone who does practical work to enable an outcome further down the line. +1
- [name=ti] this aspect to me is about the "structural integrity" of it - making something reproducible, trustworthy, lasting (also considering future-proofness, including extendability) - as opposed to "throw-away" or "write-once, read-never" code that is very common for researchers (who focus on doing it once, as quickly as possible, for one paper) at the moment


- What is a Software Engineer (compared to Software Developer, coder...):
  - Someone who maintains the overall structure of a software project
  - Renponsible for the "structural integrity" of software
  - Today the term has maybe matured enough to be not just corporate but also usable in the academic work


Notes:

- [name=rkdarst]: Could the a movement be "Research Engineering" and one subfield be "Research Software Engineering?"
  - this is because when I first learned of RSE, the emphasis was valuing non-paper contributions to science.  there are a lot more non-paper contributions to science than only software.
  - [name=Ti]: "What is RSE *not*?" - Just software engineering isn't what we need (for a lot of scientific software development purposes). I worked in a machine learning company for a while, where we had "classical" software engineers, ware engineers, "ML engineers" and "actual" researchers - but the kind of software that the software engineers wrote was actually (nearly-)useless for the purposes of researchers. Too focussed on getting everything as stable and "perfect" upfront, whereas a huge part of research is exploring the unknown, not knowing up front what may be needed later.


What happens if you remove each term:

Software Engineer:
 - No practical research value

Research Engineer:
 - More general term
 - Not necessarily computational work (maintaining a lab is not RSE, but still necessary)

Research Software Person:
 - Lacks structural view of the whole project.


## Blog post

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.

[TODO check this paragraph] 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.


### See also

