The term Research Software Engineer, or RSE, emerged a little over 10 years ago as a way to represent individuals working in the research community but focusing on software development. The term has been widely adopted and there are a number of high-level definitions of what an RSE is. However, the roles of RSEs vary depending on the institutional context they work in. At one end of the spectrum, RSE roles may look similar to a traditional research role. At the other extreme, they resemble that of a software engineer in industry. Most RSE roles inhabit the space between these two extremes. Therefore, providing a straightforward, comprehensive definition of what an RSE does and what experience, skills and competencies are required to become one is challenging. In this community paper we define the broad notion of what an RSE is, explore the different types of work they undertake, and define a list of fundamental competencies as well as values that define the general profile of an RSE. On this basis, we elaborate on the progression of these skills along different dimensions, looking at specific types of RSE roles, proposing recommendations for organisations, and giving examples of future specialisations. An appendix details how existing curricula fit into this framework.
翻译:“研究软件工程师”(Research Software Engineer,简称RSE)这一术语大约在十多年前出现,用以指代那些在科研社区工作但专注于软件开发的从业人员。该术语已被广泛采用,且存在多个关于RSE的高层次定义。然而,RSE的岗位职责因所在机构背景的不同而存在显著差异。在光谱的一端,RSE的职责可能接近于传统研究岗位;而在另一端,则与工业界的软件工程师角色相似。绝大多数RSE岗位介于这两种极端情况之间。因此,要提供一个简洁、全面且能涵盖RSE工作内容、所需经验、技能及能力的定义颇具挑战性。在本社区论文中,我们界定了RSE的广义概念,探讨了他们从事的不同类型工作,并定义了一系列基础能力与价值观,以勾勒RSE的总体轮廓。在此基础上,我们沿不同维度阐述了这些技能的演进路径,考察了特定类型的RSE角色,为组织机构提出了建议,并给出了未来专业化的示例。附录详细说明了现有课程体系如何契合这一框架。