The application of the FAIR principles (Findable, Accessible, Interoperable, Reusable) to a research software project is easier when you plan the development of your software. Considering who is in charge of the development, what tools will be used, who will be in charge of its long term maintenance and where are the potential risks related to software development are all important aspects of a successful software project. This course will introduce these ideas in the context of creating FAIR software for your research. Planning the development of your research software will help you with organisation and resource management, long term sustainability, and intellectual property aspects.
We will start by introducing the concept of research software management plans (SMPs) and we will discuss why it is important to plan for the development of your software. We will go through the standard software lifecycle and highlight important features of an SMP.
Then we will discuss two important aspects of software development in the context of software in academia: Licences and Intellectual Property: Software is a creative work and as soon as it is created it automatically attracts copyright protection. This means that if you want other people to be able to use your software without having to ask you directly you need to apply a licence to it. We will look at why licensing matters, how to choose a licence and what the implications are when you want to build on other people’s openly licensed software. Dissemination: While putting your software online certainly helps it satisfy the FAIR principles, simply doing so might not be enough for other researchers to actually find and utilise what you’ve put out there. It’s important to know the benefits and issues with where you store and publish your data, and to make the most of the tools these platforms provide, such as Digital Object Identifiers (DOIs). It’s also important to know best practice for how to increase the visibility and citability of your work in cases where your chosen platform lacks these features. We will introduce and explore worked examples of elements that you should consider when publishing your software, which will help you easily reference your work, and also help make it more findable and reusable by others.
This course is aimed at researchers, including postgraduate researchers, who write software (whether a few scripts or something more substantial) as part of their research and wish to bring open research best practice to their project or team.
- What is research software and what is a software management plan (SMP)? Which software requires an SMP?
- Importance of software development planning
- Planning and Analysis
- Design
- Implementation and Testing
- Deployment
- Publication
- Maintenance
- What will you develop?
- Who is developing it and who are they developing it for?
- How will you develop it?
- Introduction to copyright and intellectual property
- Choosing an open software licence
- Third party dependencies and how to navigate the licensing
###Software dissemination and impact:
- DOIs
- What are they, how do they work and how do I get one?
- Repositories (both software and non-software versions).
- What do they allow you and others to do and how to pick one
- Metadata
- Why it’s important
- Best practice and good examples
- Citation
- You (probably) already know how to do this (sort of)
- What do you want them to access? (static vs dynamic work).
No prior knowledge of any programming language or open research practices is required.
Half day.
After completing this course, participants should be able to:
- Understand what is research software and when does it need a management plan
- Recognize what are the main steps of the research software lifecycle
- Create a plan for a software project and be able to select the right tools for it.
- Understand the potential risks associated with software development and how to overcome them
- Understand why open licences are a key part of sharing software
- Know how to choose an appropriate licence for software and the implications of your choices
- Understand how to work with other openly licensed software and respect the terms of the licence
- Select a repository that best suits your needs, and understand what best practice to follow if it’s necessary to deposit research outputs in more than one.
- Understand the creation of DOIs, how to get one for your software, and what types of output should have a DOI.
- Understand the importance of, and be able to create, good metadata for your software.
- Understand best practice around the citation of your software and what should be stored long term.
Contact Information: Please contact rdm@sheffield.ac.uk for any queries regarding this lesson
Citation: https://github.com/FAIR2-for-research-software/Software_Lifecycle_Planning/blob/main/CITATION.cff
Licence: https://github.com/FAIR2-for-research-software/Software_Lifecycle_Planning/blob/main/LICENSE.md
https://www.software.ac.uk/guide/writing-and-using-software-management-plan
https://zenodo.org/records/7248877