Code Management Guidance
Do you write code for research or teaching? Wondering where it should live and who should access it? The answer depends on your situation, but we’re here to help you make the right decisions.
This self-help guide offers key considerations for different stages of the research lifecycle. For personalized advice, submit a Research Computing Query.
Stage 1: New Project or Research Proposal
✔ Include code management in your data management plan (DMP).
- A DMP is required for research at the University.
- Researcher Support at the Library provide templates and general guidance for Data Management Planning, while our team can advise specifically on code management.
- Remember to plan how you’ll manage your data separately from your code – they shouldn’t always be stored together.
✔ Check your funder requirements for specific software and code handling guidelines, with consideration for Open Research principles.
- Many UK and EU funders (including UKRI and Horizon Europe) support Open Research, and the University of Leeds is committed to these principles.
- The Open Research Hub provides general guidance on making your research open, while the Leeds branch of the UK Reproducibility Network (UKRN) is a place to access community support and training.
✔ Budget for code management in your research proposal
- Proper code management can be vital for maximising research impact, and it requires the right combination of time, skills, and resources.
- You can get help to budget for code management throughout the research lifecycle at the grant writing stage. Visit our Grant Writing Service page to find out more.
Other considerations:
- Legal & IP: Check employment contracts and/or funding terms for code ownership; consult the Research Innovation Service (RIS) early if you think your software may have commercial potential
- Security planning: Identify if you’ll handle sensitive data; plan for secure coding practices
- Platforms and resources: What platforms and resources will you be using? If you plan to use HPC, consider how you will transfer data to and from the cluster? Do you need any Training or additional storage?
- Collaboration setup: Decide how you’ll give your collaborators access to your code, and what permissions to give them.
Stage 2: During Active Research
✔ Use a version control system to collaborate and track changes.
- Our SWD2 training course “Version control as a tool for reproducibility” will get you started.
- Consider hosting your source code on the University’s GitHub Enterprise platform. Visit the GitHub Enterprise Platform page for more information.
Other considerations:
- Security practices: Never hardcode passwords, API keys, or personal data (nor should these items be tracked under version control)
- Code quality: Write clear documentation so others can understand and run your code (e.g. README files and code comments)
- Testing: Write tests to ensure code reliability and to help other developers understand how the code works
- Performance: Our SWD3 course on Software development practices for Research includes help for code optimisation; consider High Performance Computing (HPC) resources for large-scale analyses.
Stage 3: After Publication
✔ Deposit a snapshot of your research code
- For reproducible research, archive your specific code version and data with detailed instructions in a trusted repository (e.g. Symplectic or Zenodo).
- The best option depends on factors like your data type and volume.
- For help packaging your code for depositing, check out
✔ Assign a persistent DOI for long-term findability and citation
- Code can be treated like other kinds of research publication, in much the same way that your data can (see )
- Attaching a DOI helps ensure that researchers who develop code are properly recognised for their contributions
Other considerations:
- Environment preservation: Use containers (like Docker) to help ensure your code runs consistently over time, bearing in mind that guaranteeing complete computational reproducibility is hard, given all software and hardware gets
- Dependency management: Document all software dependencies with specific versions
- Long-term access: Plan for what happens when your research funding ends or key people leave the project. Migrating repositories to the University’s GitHub Enterprise Platform can help ensure long-term access
Stage 4: Impact
✔ Prepare your software for release
- Well-managed research software gets more use and citations. It also makes it easier to demonstrate impact for Research Excellence Framework (REF) submissions (software outputs are eligible for REF 2029, with more changes expected that may further incentivize good research code management.)
- Get help to prepare your code for others to use it, either through accessing our training, or requesting our help through the Research Computing Query form.
✔ Publish your research code
- Consider open sourcing your software to encourage future development and collaboration opportunities. You can learn more about software licensing through our SWD training materials, or reach out to the team for more information.
- Consult the Research Innovation Service (RIS) if you think your software may have commercial potential
Other considerations:
- Sustainability planning: Consider ongoing maintenance costs and responsibilities. The SSI provides funding for software maintenance through their Research Software Maintenence Fund
- Migration strategies: Plan for when platforms or services might be discontinued
- Community building: Engage users and potential contributors for long-term project health. The Research Innovation Service offer support for public engagement with research, while the SSI Fellowship Programme can give you access to an active community



