SMP introduction
What is an SMP
A Software Management Plan (SMP) is a living document that outlines how research software will be developed, maintained, shared, and preserved throughout its lifecycle. It covers key aspects such as technical decisions, roles and responsibilities, licensing, documentation, and long-term sustainability. As the project evolves, the SMP can be updated to reflect changes in goals, technologies, or team members. By creating and maintaining an SMP, researchers can ensure that their software is well-organized, easily accessible, and adaptable for future use, contributing to its long-term impact and alignment with best practices, including the FAIR principles.
Why write it
An SMP may sound like an extra administrative task, but it is a powerful tool for planning, organizing, and future-proofing your research software. Here's why:
- Avoid future headaches: Plan early for software maintenance and updates, so you’re not caught off guard when environments or dependencies change.
- Clear roles and responsibilities: Define early who handles maintenance, releases, and post-project support.
- Informed technical decisions: Make key choices about tools, programming languages, and resources up front, preventing costly changes later.
Additionally, an SMP is immensely helpful in aligning your software with the FAIR principles:
-
An SMP encourages you to think about how your software will be documented, cited, and made available in appropriate repositories and registries with metadata, making it easier for others to find. → Findability: It motivates assigning unique identifiers (like DOIs) and creating rich metadata.
-
By considering how your software and metadata will be stored and accessed, an SMP helps you plan for long-term availability, even as technologies or team members change. → Accessibility: Planning for software storage and retrieval ensures long-term accessibility for users.
-
An SMP encourages you to adopt standards and formats that allow your software to work well with other research tools, datasets, or systems. → Interoperability: This improves the software’s ability to communicate and integrate with other tools, supporting interoperability.
-
Planning for clear documentation, proper licensing, and explaining how the software can be used or adapted ensures that others can build on your work in future projects. → Reusability: Your software will be easier to modify, extend, and apply in different contexts.
Read more about the reasons, motivations, and considerations in the Software Sustainability Institute article Writing and using a software management plan.
When you need an SMP
Write an SMP if your software is at least one of:
- used by someone other than the original author;
- producing research results, figures, models, or publications that will be reported;
- expected to outlive the current student, postdoc, or grant;
- shared outside the immediate team;
- subject to funder, journal, institutional, or regulatory expectations.
You probably don't need one for one-line scripts, throwaway exploratory notebooks, or personal utilities you will never share. A practical test: if a future colleague would reasonably need instructions to understand, rerun, or maintain it, an SMP is warranted.
SMP resources
| Resource | Description |
|---|---|
| Practical guide to Software Management Plans by the Netherlands eScience Center and NWO (latest version) | Provides guidance to create a Software Management Plan (SMP) template |
| Software Management Wizard (SM Wizard) by ELIXIR | ELIXIR Tool for creating SMP in different formats and connecting it to FAIR evaluator |
| Animation by TU Delft: What is a Software Management Plan? | The animation introduces SMPs |