Research Software Engineering and PRISM
Research Software Engineering and PRISM
Photo by Glenn Carstens-Peters on Unsplash
The PRISM platform is characterised by its group of advanced scientific research software and the teams that build and maintain this software. Software engineering expertise is therefore a significant part of PRISM. The term Research Software Engineering or RSE is becoming increasingly common within the research community. Indeed, the acronym “RSE” may be something that you are already familiar with or have encountered as it becomes more widely used.
The RSE movement, which has developed over recent years, goes beyond purely considering expertise in building research software to include aspects such as best practices, careers, training, policy development and various other areas. Why is this so important? How does it relate to PRISM? And how are the PRISM team working with, contributing to and learning from the research software community?
In this section of the website we provide some background on what Research Software Engineering (RSE) is, why it’s important not just to PRISM but to research more generally, and some of the resources that exist and may be of interest to you if you build, use or are interested in research software. Whether or not you’re part of one of the PRISM groups, we hope this section of the website will provide useful information and links to some helpful resources.
Research Software Engineering: An Introduction
Software has been part of research for a long time, especially in the types of scientific domains represented by the PRISM platform. The unique mix of specialist research domain knowledge, and the ability to write code in often relatively low-level programming languages such as FORTRAN or C/C++, that is often found in these areas has become an increasingly valuable skill set as computational science has become an ever-more vital part of modern scientific research. As data volumes and the complexity of simulations increase, so the complexity of the software that is needed to support the science increases.
Over the years a group of researchers started to emerge who were spending a significant amount of their time writing software, to the exclusion of other tasks such as writing papers or proposals, or undertaking teaching duties. Where these individuals were looking to go on to an academic career, this put them at a major disadvantage in terms of gaining the necessary experience and CV to support this. Where they enjoyed the focus on software development, their role was generally not recognised within the wider structure of university roles and they would often have limited job security, being supported through fixed-term funding, or no career advancement opportunities.
At the Software Sustainability Institute’s Collaborations Workshop 2012, a group of individuals sat down to discuss this challenge and this led to the concept of the “Research Software Engineer” and ultimately the large (and still rapidly growing) RSE movement that we have today. You can read the full story in Simon Hettrick’s “A not-so-brief history of Research Software Engineers”.
RSEs in PRISM
Photo by Markus Spiske on Unsplash (modified)
Within the teams that are part of PRISM, there are many researchers and academics who spend much of their time writing code. In some cases, these individuals may identify themselves as Research Software Engineers while in other cases they may simply consider themselves as researchers who spend a lot of their time coding. Either way, there is lots that an active research software community can offer these people, from events at which to present their work and network with others developing software in different research fields through to offering training and offering opportunities to get involved with providing training to others.
Imperial College London has a Research Software Community in which there are members of PRISM who are active participants. This includes helping to run the community as part of its organisational committee and attending events and activities provided by the community. PRISM also has links with the wider London and South East of England regional research software community RSLondon.
One of UK Engineering and Physical Sciences Research Council (EPSRC)’s 11 Research Software Engineering Fellows is directly linked with PRISM through a work programme that includes continuation of a previous collaboration with the Nektar++ team. This work is developing tools and services to support bridging the gap between the code and growing user communities. These user communities include individuals who have limited technical computing knowledge but advanced scientific and mathematical knowledge to support their use of the code and its outputs.
Policy, Careers and Advocacy
Photo by Clark Tibbs on Unsplash (modified)
One of the major opportunities for a community in the research software space is to bring together individuals who are often the only person (or one of a very small team) within a given research group focusing on developing software. These individuals could probably not, on their own, demonstrate the need to enhance support for RSEs or bring together a sufficiently large group to help with this. Whereas a larger community crossing many disciplines has more scope to demonstrate the wide-ranging need for change. The relatively large number of individuals within PRISM who work with and build research software ensure that PRISM is well-placed to help advance local research software capabilities in collaboration with existing research software communities. Particular areas where these communities can make a difference include:
Policy: Helping to design, develop and implement new approaches to supporting research software. Working with a range of stakeholders either within a single organisation/institution or across multiple institutions to enhance the availability and awareness of research software services and/or support.
Careers: As highlighted above, individuals focusing on building research software often have limited job security or career advancement opportunities. This is beginning to change and developments such as the setting up of research software teams at academic organisations and institutions are helping to provide options for career progression. Groups of researchers and academics who understand research software are well-placed to make a case for the need for such groups.
Advocacy: Advocacy is, to some extent, encompassed within the previous two elements but it has significant importance in its own right. Research software that is developed according to best practices and that is sustainable, maintainable, robust and performant is a key element in ensuring high-quality outputs from computational research. This is highlighted by the Software Sustainability Institute’s motto: “Better Software, Better Research”. Getting this message out to people who have the capability to make a change to the way that RSEs are seen in the research community and ensuring that they have the necessary opportunities to realise the huge potential benefits their skills can offer is vital.
Links and Resources
Please let us know if there are links that you’d like to see added to this list.
General RSE links – groups (PRISM-related), organisations, blog posts, articles, etc.:
- Imperial’s RSE Team
- Oxford Research Software Engineering
- Society of Research Software Engineering: A professional society for RSEs
- Software Sustainability Institute
- A not-so-brief history of Research Software Engineers
- The Four Pillars of Research Software Engineering
- The Carpentries: Providing a wide range of training courses for researchers covering software development and data science among other areas.
- Imperial’s Research Computing and Data Science Skills courses