Talk to each other!
By Marion Weinzierl (RSE at Durham University), Heather Turner (Freelance statistical programmer), Talia Caplan (Wellcome Trust Data for Science and Health team), Florian Mannseicher (German Research Foundation), Thibault Lestang (RSE at Oxford University) and Ilian Todorov (RSE at STFC).
This blog post is part of our Collaborations Workshop 2021 speed blog series.
What sources of information, experience and models of thinking do we need to bring together in the discussions about software sustainability? Which communities do we need to connect (to)?
Research software isn’t set in stone, as opposed to publications or data collections. For research to be (or remain) reproducible, and easy to build upon by others, software must be maintained: refactored, updated or extended. Currently, software maintenance is not something that researchers can generally afford to engage with, for lack of time, funding and incentives. In addition, maintaining software requires a set of skills that most researchers generally do not have. In recent years, a number of initiatives have been addressing the issue of research software sustainability. However, ensuring software sustainability remains difficult in practice, mostly for a lack of (a coordination or overview of) community guidelines and lack of communication between communities and fields.
There are already various communities and initiatives that discuss these kinds of issues, and propose possible ways forward, best practices, or just common practices. Examples of initiatives and communities are:
- The Turing Way
- FAIR data / FAIR for software
- The Carpentries
- Software Sustainability Institute (and upcoming international similar initiatives)
- Collaborative Computational Projects
- Better Scientific Software
- Research Software Alliance
- Research Data Alliance
- RSE communities
- Research Data communities
- Research areas
- HPC community
Some of these are in close contact, but it still seems that certain issues are discussed separately and redundantly. And even if members of one community know of existing best practices in the other, there still seems to be a hurdle to actually apply those. Other communities seem to have hardly any contact, or only some small contact points. This prevents them from learning from each other, supporting each other, and leads to the wheel being reinvented again and again. Even if there are perceived differences, these are often not clear for outsiders.
The challenge to overcome this separation is therefore twofold:
- We have to increase and improve communication between communities and initiatives.
- We have to provide motivation and incentives to apply recommendations and best practices of those fellow communities.
Both require strategic funding to sustain these activities. Time is a key constraint in learning about and implementing software sustainability. It is therefore key to making adoption of best practices a priority to various stakeholders in research. Also here, if we can combine the voices of all the initiatives who fight for a similar goal, we can increase our chances of being heard and listened to by funders and other stakeholders.
It then has to be made sure that not yet another software sustainability project/initiative is founded (can’t help but citing https://xkcd.com/927/), but that existing resources are used (and potentially extended). For this, these resources have to be made visible and easily available.
RSEs, who are often cross- and multidisciplinary, can play a key role in this. By educating themselves on existing communities and resources, contributing, and advocating for them in the various fields and communities they are active in.
But where do we go from there? What are the best ways to communicate good practices within the RSE community, to “regular” researchers/software developers, but in particular also across communities? How can we overcome perceived differences and rivalries and instead join forces?
We do NOT think that all existing communities should be joined together into one, we do not even think that we need to agree on everything and always have the same goal. It is important to have diversity. But we should be aware of each other, talk to each other, and where possible not work against each other, but collaborate.