Introduction
Last updated on 2025-02-04 | Edit this page
Overview
Questions
- What is a Software Management Plan (SMP)?
- Why is an SMP important?
- How is an SMP useful?
Objectives
- Understand the role of a Software Management Plan (SMP).
- Understand that the stage and scope of your software can determine that some parts of the SMP are not relevant (yet).
- Understand that no matter the scope of your software, an SMP is always relevant.
Introduction
A Software Management Plan (SMP) is a formal document explaining how software is written and managed both during and after a research project. It is a living document and will evolve with the boundary conditions of your project and software. While it is encouraged to write an SMP before starting to develop code, it is never too late to create one for existing projects.
Importance
SMPs provide value both inside and outside your organization. The things that you and your organization might find valuable in an SMP are: - Writing the plan encourages you to think about the roles and responsibilities within the project, thus defining tasks and responsibilities early on. - Once a plan has been filled out, it can also be used to give guidance for new team members, thus reducing the time needed for onboarding. - Writing an SMP will guide you through the best practices that you can apply to your software based on the size and scope of your project. Following the best practices outlined in an SMP will make it easier for others to use or cite your software.
Outside your organization, research funders specifically have become more aware of SMPs and are starting to require them because of all of the above reasons. From the funder perspective, a well thought out SMP also demonstrates the feasibility and reliability of the project. It is thus a good idea to prepare a well written SMP when submitting a funding proposal.
Key Points
- A SMP is valuable in any stage of your project
- It outlines how the software supports the vision of your project
- It encourages you to follow best practices based on the scope of your project