Find out how you should manage software as a research output, as there are fundamental differences in relation to research data. Software is different from data in that it is executable and often has dependencies on other software or hardware.
It is important that software is developed with sustainability in mind. Research software has to be well documented, preserved and published, preferably open source.
- Why research software management?
When software projects depend on many libraries and programs which themselves depend on other code, the chance increases that somewhere in the chain something breaks. Code may be moved, updated (and no longer be compatible) or be removed all together. Because of new versions, security issues, platforms may cease to operate, operating systems may become outdated. On longer timescales also hardware will become outdated.
In order to ensure that the software is usable and maintainable in the long run, it is advisable to create a software management plan. It is a document that describes how a specific software project is developed, maintained, and curated. Please check the Practical Guide to Software Management Plans for more information.
Developing software lends itself to an open workflow through the use of social software development platforms such as GitLab and/or GitHub2. This has the potential to attract collaborators and improve work at an early stage.
On UT Gitlab you can ask for guest accounts for external co-developers, but it is not possible to have a project completely open for collaboration. If you are using GitHub, which is an open platform owned by Microsoft, please add a mirror of your project on UT Gitlab, such that every change is synced and there is a complete copy stored on UT premises. Here you can see how to make a mirror. If you will develop your software publicly, you should determine a license [link to publishing and licensing] for your software.
Research output documentation usually includes details on the methodology used, analytical and procedural information, definitions of variables, vocabularies, units of measurement, any assumptions made, and the format and file type of the data. For research software you should also include dependencies, compiler versions and, possibly, a user manual.
- Preservation and reuse
- GitHub: You can register your GitHub project on 4TU.ResearchData such, that sync will be performed automatically for each release of your project. You can then get a separate DOI for each release.
- UT Gitlab: You can mirror your project to GitHub first and then sync each release of your GitHub project to 4TU.ResearchData.
Software code is considered a creative work, and therefore falls under the copyright law. Intellectual property rights (copyright) of software developed by UT staff is vested in the University of Twente (see UT research data policy, section 4).
- Publishing and licensing
If you want to publish the source code of your software, also when developing on an open platform such as GitHub, check whether you have the right to do so. Please, take the following points into consideration:
- Who wrote the software: are you the only author, and if not, are the other authors employees of the UT, students, or from an external party
- Who financed the research, and do the funders have a claim on the IP of the funded project
- Are there IP agreements with external partners
- Is there a possibility the software can be commercially exploited and/or does the software present a novel technical solution to a technical problem – in this case please contact the Knowledge Transfer Office of the UT
- Are you using or linking to software/libraries by others, and under what licenses were those published
After this check you can choose a license which indicates what other people are allowed to do with it. There are many different software licenses available. The main types for open-source software are:
- Permissive: a user can use, adopt and change the software, and distribute the derivative under any new license they want, recommended licences are Apache License v.2 or MIT
- Copyleft: a user can use, adopt and change the software, and distribute the derivative under the same copyleft license, recommended license GPLv3