The paper titled The Four Pillars of Research Software Engineering, published in the IEEE Software magazine in 2020, defines and discusses four elements that the authors believe are key to providing comprehensive and sustainable support for Research Software Engineering.
|Paper title||The Four Pillars of Research Software Engineering|
|Authors||Jeremy Cohen, Daniel S. Katz, Michelle Barker, Neil P Chue Hong, Robert Haines and Caroline Jay|
|Publication||Year 2020, IEEE Software, DOI: 10.1109/MS.2020.2973362|
The authors, in the paper titled The Four Pillars of Research Software Engineering, introduce the “four pillars” of Research Software Engineering that they state are necessary for the development of quality research software. The four pillars are (a) software development, (b) community, (c) training and (d) policy. The authors state that within the software development pillar, the topics of maintainability, sustainability and robustness are core foundational elements that will be used for building quality software. The community pillar is important because research software engineers have an inherent need for communication with fellow community members for keeping themselves updated with latest findings in their domain as well as learning from the experiences of their peers. Akin to Continuing Professional Development (CPD) practices that are widely available in the industry, the training pillar states that initial training as well as ongoing skill development for people building research software plays an important role. Lastly, and perhaps the most important pillar, policy focuses on the importance of developing institutional and national policies that recognize the importance of research software. The paper also presents a few examples of existing activities under the different pillars that may encourage teams and organizations to get started and provide suggestions on how they can support the goal of developing sustainable and reliable research software.
Overall, the paper provides a good perspective on a set of areas and activities that can be considered crucial for offering coordinated and comprehensive support for research software and the teams and individuals who build it.