Papers
Topics
Authors
Recent
Gemini 2.5 Flash
Gemini 2.5 Flash
166 tokens/sec
GPT-4o
7 tokens/sec
Gemini 2.5 Pro Pro
42 tokens/sec
o3 Pro
4 tokens/sec
GPT-4.1 Pro
38 tokens/sec
DeepSeek R1 via Azure Pro
28 tokens/sec
2000 character limit reached

Foundational Competencies and Responsibilities of a Research Software Engineer (2311.11457v3)

Published 19 Nov 2023 in cs.SE, cs.CY, and physics.comp-ph

Abstract: 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.

Citations (1)

Summary

  • The paper defines essential competencies for RSEs by highlighting interdisciplinary software, research, and communication expertise.
  • The paper proposes a detailed educational framework, including a master's curriculum integrating technical and domain-specific knowledge.
  • The paper recommends institutional support with specialized training and clear career pathways to advance sustainable research practices.

An Analysis of the Core Competencies of Research Software Engineers

The paper "Foundational Competencies and Responsibilities of a Research Software Engineer," authored by Florian Goth et al., provides a comprehensive examination of the evolving role of Research Software Engineers (RSEs) in academia. It seeks to define the core competencies and responsibilities of RSEs and delineates how these skills can be incorporated into educational structures and organizational practices within research settings.

Overview of Research Software Engineering Roles

RSEs occupy an interdisciplinary niche that intersects software engineering (SE), research practice, and communication skills. This integrative position is crucial due to the pervasive role of software in modern research activities across diverse fields, including STEM, digital humanities, and medical domains. The paper posits that RSEs are vital in maintaining sustainable research software practices, adhering to the FAIR principles for data and software, and ensuring reproducibility within research projects.

Defining Competencies

The authors categorize essential RSE competencies into three main areas:

  1. Software Engineering Skills: These encompass the ability to write reusable code, utilize and contribute to software repositories, and comprehend the software life-cycle. Mastery in software modeling and debugging are highlighted as necessary for optimizing and safeguarding the software environments prevalent in research contexts.
  2. Research Skills: These include understanding the research cycle, utilizing domain-specific tools, and practicing software reuse. The ability to publish software appropriately, while managing intellectual property concerns, is also covered.
  3. Communication Skills: RSEs must excel in interdisciplinary communication, managing teams, and teaching. They need to liaise effectively among various stakeholders, including non-technical users, technical teams, and project managers.

Implications for Academic and Organizational Structures

An innovative aspect of this paper is its proposal for an educational framework to develop RSE competencies, suggesting a four-semester master's program that integrates software engineering principles, domain-specific knowledge, and essential communication skills. The curriculum also encourages specialization, preparing RSEs for roles in domains like HPC, data management, and bioinformatics.

On an organizational level, the authors recommend fostering RSE skills through structural support, policies, and institutional recognition of the RSE career path. These recommendations include offering training, mentoring, and pathways to leadership positions in RSE-focused roles.

Future Directions

While presenting a detailed framework, the paper calls for further initiatives to formalize the recognition of RSE contributions, such as certifications and degree programs tailored for RSEs. These initiatives aim to solidify career trajectories and enhance the impact of RSEs within academia and beyond. The authors advocate for developing resources and community networks that facilitate lifelong learning and adapt to technological advancements in digital research environments.

Conclusion

This paper details a robust framework for defining the foundational competencies of Research Software Engineers and outlines steps for integrating such roles into the academic framework. By emphasizing the unique blend of software, research, and communication skills required for RSE roles, the paper underscores the critical nature of these professionals in advancing reproducible, sustainable, and impactful research practices. These competencies not only facilitate the execution of high-quality computational research but also prepare RSEs to meet the technical and ethical challenges emerging in the digital research landscape.

Youtube Logo Streamline Icon: https://streamlinehq.com