Our goal is to help researchers to produce high quality research software, from the simplest scripts to complex simulations running on state-of-the-art supercomputers.
Computationally based research has the potential to set the highest standards for openness, reproducibility, and reliability in research methods. However, a lack of appreciation for the significance of software as a research output often leads to software created in research institutions being treated as a secondary concern. Research software is often developed quickly to solve one-off problems, leading to fragile code that is generally not sustainable or usable beyond the lifetime of a given project, and is hard for other researchers to read and understand. Whilst commercial software engineers tend to follow a more disciplined approach to software development, collaborations with academia can fail due to lack of understanding of the research context.
Our solution has been to create a dedicated group of Research Software Engineers at UCL who combine academic research experience with an appreciation of good software engineering principles. We provide a service which helps researchers to build more readable, reliable and efficient code. Our work is not just about producing software on behalf of researchers; we work collaboratively, providing the tools, advice and training researchers need in order to follow best practice and continue to develop sustainable software in future.
We also work with partners such as the Software Sustainability Institute to advocate on behalf of research programmers for software as a first-class research output. Research Software Engineers will be an important part of the twenty-first century research team, and building a stable home for these skills in academia will help secure for research the benefits of a high quality, sustainable software infrastructure.
We are keen to engage with research groups from across UCL who are developing their own software, to learn about existing projects and to understand the needs of the research community. If you are interested in using any of our services, please read on for more information.
- Expert advice on software development opportunities for projects and grant proposal costing at firstname.lastname@example.org
- Community building and peer support through the Research Programming Hub.
- Tools to support version control and testing.
- Promote software as a research output.
- Close collaboration with researchers to produce high quality research software.
- Capabilities span the development of new applications to optimising existing code.
- Experts from diverse academic backgrounds and disciplines essential in understanding your research goals.
- Flexible options to pay for staff and expenses.
The UCL Research Software Development Group (RSDG) are professional software developers with particular expertise in creating software for academic research. Our goal is to enhance UCL's capacity to produce high quality scientific software, from the simplest scripts to complex simulations running on state-of-the-art supercomputers. Researchers can collaborate with us on projects with a significant programming component by costing our services into grant submissions or paying a day rate.
Types of projects
Many different academic disciplines have benefited from working with RSDG; a full list of current and former projects is available. The following is a partial list of the kinds of projects we typically work on:
- Implementing new algorithms or methods
- Addition of new components to existing models
- Import/export tools for linking with other codes or loading new data formats (e.g. for multiscale modeling, data import/export)
- Performance improvements
- Design and architectural effort
- Testing, reliability and correctness improvements
- Usability improvements
Note, however, that these are not exhaustive – if you are not sure whether we can help you, do get in touch to ask at email@example.com
Working with RSDG
If you are interested in recruiting RSDG to work on a research project, the first thing we will want to do is meet to discuss your requirements; please email us at firstname.lastname@example.org – time spent developing new project proposals is not charged for.
It is important that the aims and scope of the project are clear before we proceed. Research teams should have a look at our ways of working for an idea of what to expect when working with RSDG.
The Research Software Development Group will always aim to take on paid-for projects that lie within our remit, and may become involved either pre- or post-award as described below. However, due to high demand, we are at times unable to work with all groups that contact us. In such circumstances, we will prioritise projects where we can provide the most benefit, relative to other potential solutions. See our prioritisation criteria for more explanation of what this principle entails.
We can be included on grants as a directly allocated cost and will prepare a section in Worktribe for this as part of the grant submission process. We can provide fractional or full time effort as needed, throughout the project or at critical intervals, and manage resourcing and recruiting issues to ensure the team is capable of servicing such obligations.
For research groups who already hold appropriate grant funds there are two routes. Where the total budget is £5000 or more, following advice from Research Services we will require a separate project sub-account to be set up against which will charge our costs, and will cost on the basis of a retrospective costing using UCL's standard grant costing tools. For projects with a budget of less than £5,000 we will request lump sum transfers via IDT instead. For these smaller projects we can on occasion use a day rate of £440/day (updated February 2022). Note that the prevailing day rate is subject to twice-yearly review; contact us for the currently prevailing day rate.
Free support and advice
We aim to help all researchers at UCL to improve the standard of their research software. With this in mind our developers provide the following types of support for free where time allows:
- Helping to troubleshoot code; e.g., within the ARC drop-in sessions (coming soon)
- Recommending technology and tools
- Helping researchers to setup and use software development tools (see the Research Software Development Tools service)
- Helping groups to recruit software developers by advising or joining interview panels
- Providing training in research software development
We also encourage researchers with an interest in programming or computational methods to explore the UCL Research Programming Hub for community events, support and discussion with colleagues.