Aligning to the Maastricht University efforts to Open Science, creating a SMP is a crucial step in ensuring the sustainability and transparency of your research software.
What is a Software Management Plan?
An SMP is a brief roadmap for how a specific scientific code or software will be developed and maintained during a research project. It’s written by the people involved in the project (e.g. the Principal investigator, the developer and the researcher). The goal is to ensure the research software serves the main research purpose while remaining usable and reliable in the long term.
Useful resources:
- Introduction to Software Management workshop
- Research Software @ UM community (on UMployee, only accessible to UM staff)
- Practical guide to Software Management Plans
What is the level of management that your Research Software needs?
Answering this becomes crucial as it helps you determine the level of management planning your software requires and what aspects you and your team should consider. The core elements of an SMP include the purpose of the software, version control, repository, user documentation, software licensing, and maintenance. Therefore, depending on the level of software management (low, medium, high), these elements may vary.
Purpose: What is the current reason or expected end-use for developing the software?
Reliability: What would be the effect of software failure and/or non-maintenance on:
- Risk of harm to self or others. This includes injury, privacy violation, bias, and inappropriate content.
- Reputation. For example, to self, institution or other.
- Research, either your own or of others. This effect could be due to an obvious software failure (“crash”) or a hidden one, for example, returning inconsistent numerical results on different operating systems.
Maintenance: What is the long-term effort needed to maintain the software as long as it might be used as a standalone tool or dependency? This includes maintenance functions that can extend beyond the lifespan of the original development project and includes fixing bugs, dependency management, operating system compatibility, and security issues.
The Software Sustainability Institute provides a useful guide on how to write an SMP.
Use SMP Templates
The eScience Center document provides templates for three levels of software management: low, medium, and high. These templates can be customized based on the specific needs of the software project. In practical terms, you can add your SMP in your software documentation or it can be addressed in your data management plan if your code is companion of data.