What is Research Software?
And why is it critical to the research endeavour?
Professor Carole Goble CBE FREng FBCS
Software Sustainability Institute UK
ELIXIR, ELIXIR-UK Head of Node
The University of Manchester, UK
carole.goble@manchester.ac.uk
2nd International Funders Workshop:
The Future of Research Software 18-20 Sept 2023
Montreal, Canada (hybrid)
Acknowledgement: Dan Katz
https://doi.org/10.5281/zenodo.6677821
Dan Katz
Software is critical to every step of the research endeavour just like it is critical to every other endeavour in our lives.
https://research.com/research/definition-of-academic-research
Software is critical to every step of the research endeavour��
often
team science�data driven �hypothesis driven�exploratory�pooled curated knowledge
The research community relies on software
S. Hettrick; https://www.software.ac.uk/blog/2016-09-12-its-impossibleconduct-research-without-software-say-7-out-10-uk-researchers
S.J. Hettrick, et al,; 10.5281/zenodo.14809
U. Nangia and D. S. Katz; 10.6084/m9.figshare.5328442.v1
J.E. Hannay et al., “How Do Scientists Develop and Use Scientific Software?” Proc. ICSE Workshop Software Eng. for Computational Science and Eng., 2009, pp. 1–8.
say scientific software is important for their own research
>90%
say they would not be able to do their research without software
~65%
say they develop software as part of their research
~50%
Software is crucial to the Research Endeavour
Collected from http://www.dia2.org in 2017
Collected from https://reporter.nih.gov in 2022
SSI Analysis of data from 49,650 grant titles and abstracts published on Gateway to Research covering 2010-2014
Funding
Nangia and Katz; 10.1109/eScience.2017.78
“Top 100-cited papers of all time,” Nature, 2014
10.1038/514550a, PLoS: https://doi.org/10.6084/m9.figshare.21687686.v3
Publishing
What is Research Software? An intent perspective�Gruenpeter et al., “Defining Research Software: a controversial discussion,” 2021�https://doi.org/10.5281/zenodo.5504016
Research Software
created during the research process or for a research purpose
source code files, algorithms, scripts, computational workflows and executables, applications, tools, packages, modules etc.
Warning: Differentiation may vary between disciplines
Software in Research
used for research but not created during or with research intent
software components including operating systems, libraries, utilities, dependencies, packages, scripts, frameworks etc.
What is Research Software? A role perspective�Rob van Nieuwpoort and Dan Katz, “Defining the roles of research software,” �https://doi.org/10.54900/9akm9y5-5ject5y from 1st Funders Workshop, 2022
assembles or integrates existing components into a working whole
infrastructure or an underlying tool
a component of instruments
including pipelines
is the instrument
including curation
facilitates distinctively research-oriented collaboration
including knowledge resources
analyses research data
presents research results
Roles of research software
What is Research Software? An owner perspective �Warrick Ball, University of Birmingham. Astronomers re-invent small programs instead of collaborate to sustain and improve big ones��
it is easier and more rewarding
to create one’s own new software
than to extend existing software
RSECon 2023 https://docs.google.com/presentation/d/1TkuHc08arvO9aTXH8waI6cL6PIrVSsmg8N_qbj0v9g/edit#slide=id.g276814a6923_0_10
What is Research Software? A maturity perspective �Tom Honeyman, ARDC�
Analysis Code
one-off “me” research,
side effect software
Prototype Tools
research need “professorware”
Research Software Infrastructure
professionalised product
Researchers who code
Researcher Developer
Research Software Engineer
Researchers
transition
What is Research Software? A stack perspective�Dependencies, Roles, Visibility�
https://xkcd.com/2347/
User facing shiny thing
Applications, tools, scripts …
Discipline or project specific
Immediate visibility
Underware
Scientific & non-scientific infrastructure
Some discipline specific, some general
Platforms, libraries, utilities, frameworks…
Cross-domain generic reusability
Overly familiar, invisibility
What is Research Software? A stack perspective�Dependencies, Roles, Visibility�
https://xkcd.com/2347/
User facing Software
Applications, tools, scripts …
Domain or project specific
Immediate visibility
Underpinning Software
Scientific & non-scientific infrastructure
Some discipline specific, some general
Platforms, libraries, utilities, frameworks…
Cross-domain generic reusability
Overly familiar, invisibility
Software needs active nurturing to be sustained�like machines/puppies, software will break/die if not maintained
All levels of software stack - stack collapse!
https://xkcd.com/2347/
Corrective -fixing faults
Preventative - increasing maintainability
Adaptive - adapting to changes in environment, porting, new versions of underlying layers
Perfective - meeting new/different user requirements and achieve new capabilities
Keeping the Show on the Road
Dealing with change
Michael Feathers Working Effectively with Legacy Code, 2004
Supportive – user and contributing developer support
People make, use and resource software�They are at the heart of software sustainability
Domain researchers are often not software experts
Software development, maintenance and reuse is not rewarded and is even penalised
Researchers, funders: Can’t pay, won’t pay, don’t pay
Community Open Source is not Free labour
Underpinning infrastructure & seamless integration is under valued in favour of innovation
All software needs dedicated supported core and can’t rely on volunteers.
Summary – Research Software
Software is critical to the research endeavour
What Research Software is has many perspectives: Intent, Role, Maturity, Owner, Stack …. more!
Sustainability is hard but essential, especially for underpinning software.
Needs resources and mixed, multiple streams: direct (money) and indirect (community, reward, recognition, open source support etc).