It takes more than a village to raise good research software

David E. Bernholdt, Lois Curfman McInnes, Michael A. Heroux (IDEAS Productivity Project), September 6, 2018

Software has been both ubiquitous and largely neglected in computational science and engineering (CSE) since before the field became a recognized entity. The interest in CSE software for both practitioners and sponsors has primarily been on the scientific insights and advances it enables rather than on its value as a long-lived tool or product. As a result, the culture of CSE, broadly speaking, has a structure and reward system that focuses on the algorithms and the results, but where good quality research software, as well as the time and effort required to produce it, often tend to be marginalized.

Fortunately, that perspective is beginning to change. In recent years, people in the field have begun to speak out about the critical role of research software in scientific discovery, and funded efforts have started to address challenges in research software in various ways.

One such effort is the Interoperable Design of Extreme-scale Application Software (IDEAS) project. IDEAS began in 2014 with funding from the U.S. Department of Energy (DOE), Office of Science, and in 2017 expanded to support the DOE’s Exascale Computing Project (ECP). The mission of the IDEAS project is to assist and support DOE code teams in improving developer productivity and software sustainability through the implementation of best practices, methods, and tools tailored to their needs and situations. A long-term goal is to help improve scientific productivity in an era of disruptive changes in high-performance computer architectures, while working toward multiscale, multiphysics predictive simulations and analysis. We work with a “village” of scientific software developers who vary widely in levels of experience, and frankly, the importance they place on the quality and sustainability of their software – the reward system still does not provide strong incentives.

From the start of the IDEAS project, we recognized that raising the profile, productivity, and sustainability of research software within our own village would require strong interactions throughout the broader CSE community. We tap into experiences with good software development practices in our own village, and at the same time engage with the broader community to promote sharing of new methods and processes. We produce a monthly webinar series that brings software development “elders” from our own village and the broader community to a venue that serves the community at large. We organize opportunities for CSE software developers to discuss their experiences. We curate (or sometimes commission) training materials on software productivity topics, and we also produce our own and offer them at venues with broad reach. Recently, we launched a site called Better Scientific Software (BSSw.io) as an international, community-driven web portal to exchange information about software development practices, methods, tools, and experiences in the CSE and technical high-performance computing areas.

Villages like the IDEAS project have begun to flourish around the world. Prior postings on the URSSI blog have mentioned several, including the UK’s Software Sustainability Institute, the International Coalition of Science Gateways, and the US-based Science Gateways Community Institute, as well as the growing community of Research Software Engineers. The German Aerospace Center (DLR) is another. And undoubtedly many more such villages, not yet on our maps, are working to improve and share software practices.

Within the U.S., the National Science Foundation recognized the challenges of software sustainability with the Software Infrastructure for Sustained Innovation (SI2) program in 2011. Initially focused primarily on individual software products, in recent years, the program has expanded to include Software Institutes. In addition to the aforementioned Science Gateways Community Institute, the NSF also launched the Molecular Sciences Software Institute, and the Institute for Research and Innovation in Software for High-Energy Physics (IRIS-HEP), representing two more sizable village of research software teams.

In the IDEAS project, we recognize that working toward culture change requires broad collaboration. So we are pleased to do our part in forming a true community of practice around research software development, in collaboration with other like-minded individuals, projects, and villages.

Now, the opportunity has arisen to imagine a new organization that could help not only to map many more research software villages, but also to significantly expand the network of roadways and interactions among the villages, both in the US and around the world. We offer our strongest support to the URSSI Conceptualization team, and we offer our strongest encouragement to other CSE researchers to look outside their own village and become part of the larger community, so that together we can help research software take its proper place in the culture of computational science and engineering.