The Research Software Engineer's Toolkit: Information and tools to support the RSE community
Photo by cottonbro from Pexels.
Authors: Jeremy Cohen (Imperial College London), Alex Botzki (VIB), Jonathan Frawley (Durham University), Nick May (RMIT University), David Pérez-Suárez (University College London)
As the profile of Research Software Engineering (RSE) continues to grow, increasing numbers of researchers are discovering RSE. Being able to find technical and domain-specific information is of vital importance in supporting RSEs in growing their knowledge and skills and undertaking their work. However, despite the wealth of technical material and information available, it can often be difficult to know where to find that piece of information that you need to solve a pressing technical issue, or just learn about a new topic or domain.
The Research Software Engineer’s Toolkit is here to help! The toolkit will be an open community resource that is intended to provide “A set of documentation, tools and guidance to support Research Software Engineers in developing reliable, sustainable and robust code”. This wide-ranging remit makes the project challenging but also something that we hope will, ultimately, become a valuable community resource.
The authors of this post came together as a team as part of the 2nd International RSE Leaders Workshop 2020 to look at the initial shell of the RSE Toolkit and decide how it can be taken forward to form an open community resource. This blog post highlights the team’s work.
A clearer view
RSE Toolkit logo, designed by Jeremy Cohen.
The RSE Toolkit is intended to provide a “lens” over the huge array of existing material out there, offering a clearer view on the information that is useful to RSEs in different technical areas and research domains. This highlights a major question – what information is important, why do RSEs need to know it and why can’t they currently obtain it straightforwardly without this resource.
The working group set out to address these questions with some core tasks:
- Clarify the purpose of the RSE Toolkit
- Understand the key areas of information the resource will provide and develop an associated structure
- Develop the process and an initial framework for contributions
- Provide some initial sample content
Supporting multidisciplinary work
One of the key aspects of building research software is that RSEs often have to work in different domains. It can often be the case that each new project an RSE undertakes involves a different research field to the one before. Gaining detailed knowledge about a new research field may not be practical but understanding the basics can be hugely valuable in being able to communicate effectively with domain researchers, understand their requirements, and develop a successful collaboration. It was decided that a particularly valuable and important element of the toolkit would be providing domain primers targeted at RSEs and written by RSEs who have had the experience of working in a given domain.
Vision, contributions and supporting diversity
One of the first tasks we set out to address was to develop a statement of vision for the resource. This led us to identify the following three key points:
The RSE Toolkit:
- is an open resource for sharing best practices in Research Software Engineering
- is a community maintained and moderated guide covering general software engineering and domain-specific practices
- provides a platform for knowledge sharing by RSEs of any experience, from novice to expert, working in any research domain
We also assigned tasks for identifying contribution guidelines and approaches, and developing some initial example content with a particular focus on domain guidance for RSEs beginning work on a project in a domain that is new to them.
As set out by Chue Hong et al. in “Does Research Software Engineering have a diversity crisis?”, the RSE domain suffers from a lack of diversity. The RSEToolkit presents opportunities to help support improvements in diversity and inclusivity within RSE and we see some specific areas where it can help. The “domain primers” highlighted in the previous section will provide information that will help to lower the barriers between domains. This should help to provide opportunities for mobility between domains and, in turn, help to support improvements in diversity across different domains. Material provided by the resource will also enable RSEs, researchers and anyone else interested in the RSE field to develop their skills in their own time, at their own pace by reading through the content and taking advantage of links to existing training material. A clear Code of Conduct is also important, making it clear that diversity is valued and highlighting acceptable approaches to collaborating and developing/contributing content. This makes it clear to contributors what is and is not acceptable in terms of any material they provide and any interactions they have with others as part of developing or contributing material for the RSE Toolkit.
Progress and Plans
The workshop provided us with the opportunity to begin developing the resource based on the core tasks highlighted above. In addition to developing the vision, time was spent working as a group to identify key topics and domains that would be useful to populate the resource with and preparing a draft structure to support this. Issue templates were produced to support the reporting of errors and the addition (or request for addition) of new content. A contributors guide is also in development. The Code of Conduct is currently being prepared based on existing open source resources/content. Finally, a member of our team began the process of developing an example domain-specific resource for a domain in which they work. We hope this will provide an example for the development of such material covering other domains.
The work undertaken as part of the International RSE Leaders Workshop 2020 has enabled initial development of the RSE Toolkit, addressing a number of key aspects to enable us to begin advertising for and accepting contributions of content from the RSE community and beyond. We hope this can be taken forward to become a valuable and sustainable community resource.
Find out more, get involved
The RSEToolkit is avialable at https://rsetoolkit.github.io. We welcome contributions to the resource via our GitHub repository. See our contributing guidelines. We’re also happy to receive suggestions of things you’d like to see included in the toolkit - let us know by creating an issue. Finally, if you’re a member of the UK RSE Slack workspace, you can join the discussion about the RSE Toolkit on the #rsetoolkit channel.