Thursday, March 03, 2016

Research Software Sustainability: Report on a Knowledge Exchange Workshop

Research Software Sustainability: Report on a Knowledge Exchange Workshop. Simon Hettrick. The Software Sustainability Institute. February 2016; 3 March 2016.   [PDF]
     "Without software, modern research would not be possible since it is connected to the software that is used to generate results." Overlooking software will put at risk the reliability and the ability to reproduce the research itself. Like the research, and any other tool, software must stand up to the same scrutiny. It is not easy to define software sustainability, but it is the practices that allow software to continue to function as expected in the future.  This is neither easy nor straightforward. Software has a lifecycle: it is conceived, matures and decays. Not all software should be sustained, we should  concentrate on sustaining software that is most useful. Software is always reliant on other software in order to work., including operating system, system libraries, and other necessary packages. Any change or decay at any level can affect the operation of the software higher up the stack.  "If we attempt to preserve software, it quickly becomes out of step with its dependent software."

Definitions:
  • Research software: software developed within academia for the purposes of research, particularly to generate, process and analyze results.
  • Software sustainability: the technical and non-technical practices that allow software to continue to operate as expected in the future. A constant level of effort is required to maintain the software’s operation.
  • Software preservation: an approach to extend the lifetime of software that is no longer actively maintained.
  • Software archiving: one important aspect of software preservation. It is the process of storing a copy of software so that it may be referred to in the future.
Approaches to software sustainability and preservation
  1. Encapsulation. Preserve the original hardware and software to ensure that the software continues to operate (an example is recomputation.org)
  2. Emulation. Emulate the original hardware and operating environment so that the software continues to operate
  3. Migration. Update the software to maintain the original functionality and transfer it to new platforms as necessary to prevent obsolescence
  4. Cultivation. Keep the software up to date by adopting an open development model that allows new contributors to be brought on board
  5. Hibernation. Preserve knowledge of how to resuscitate the software’s exact functionality at a later date
  6. Deprecation. Formally retire the software. Unlike hibernation, no time is invested into preparations to make it easier to resuscitate the software
  7. Procrastination. Do nothing
Key recommendations
  1. Raise awareness of the fundamental role of software in research
  2. Recognize research software as a valuable research object
  3. Promote software sustainability
  4. Embed software sustainability skills in the research community
  5. Create organizations as focal points for software sustainability expertise
Benefits include:
  1. Trusted research
  2. Increased rate of discovery
  3. Increased return on investment
  4. Research data remains readable and usable


No comments: