Research IT

Image of a snow-capped mountain range and forest

Upskilling Environmental Scientists in Software Development

At the end of March, members of our Research Software Engineering (RSE) team ran a Carpentries-style training course for environmental science researchers in how to create research software. Could we offer something similar to YOUR PhD students and early career researchers?

Nowadays more and more research involves a component of writing code, this can be from using scripts to clean data to large scale applications for simulations. However most researchers never receive any formal training in how to tackle the challenge of writing good code – an important thing to consider given that an increasing number of journals require code to be shared alongside the academic paper!

Prof. David Schultz from the Department of Earth and Environmental Sciences (in collaboration with the Software Sustainability Institute (SSI) and Research IT) raised this issue in his response to a Natural Environment Research Council (NERC) funding call a couple of years ago. NERC agreed and Prof Schultz received a grant to run a course in "reproducible environmental research" to teach intermediate software development skills to environmental scientists. However he couldn't do this alone which is where Research IT stepped in to organise and run the training.

The first version of this course ran in March 2023 and this year the course content remained pretty much the same.   The five-day workshop introduced researchers to the concepts of Virtual Environments, software correctness, how to  capture requirements for software, making sure software is reusable, collaborating with others on software, and the process of managing software developments.

Learning from the Past

After the very successful first iteration of the course in 2023, we considered all the feedback from both students and teachers/helpers and made a list of improvements to the materials and processes. We also took careful note of what worked well and should be kept. As our course is based on the SSI's original material, we also considered any developments that had taken place in that course material. In good agile style we created a backlog of tasks and improved our materials over several sprints. The result of our work is now available as Carpentries Incubator course for any interested groups to reuse.

Applying the Learning

Our call for applications to this year’s workshop received over 60 responses. This made shortlisting for the 30 funded places a real challenge but also shows the wide interest across Earth and Environmental Sciences in acquiring software development skills.

Part of the feedback from last year was that besides the offer of an optional online course on Python (for students who normally use a different programming language), a request for a similar online course on Git would have been useful. So, this year we ran two optional courses - Introduction to Python and Introduction to Git and GitHub, to which about two thirds of the students signed up for.

Having a rather large team of trainers and helpers worked well previously and we ensured that plenty of people were on hand again this time to help out. One of the positive pieces of feedback we got was for the speedy response time to problems/questions.

This year we also had two guest lectures: the ‘Requirements gathering’ session was led by Nourhan Heysham from the Digital Solutions Hub at the University of Manchester and Dominic Orchard from the Institute of Computing for Climate Science ran a session on ‘Using types to rule out bugs’.

Software Carpentry style courses have a very hands-on nature, which applies the learning immediately. This type of teaching has good attainment rate for taught materials. In our workshop our students worked on a suitable Earth science specific code and most lessons improved on the code base in some way.

It wasn't all work as we didn't ignore the social aspects of bringing such a diverse group together! We allowed plenty of time during breaks for networking to happen and also organised two evening meals for people to connect and relax together.

Taking stock

Providing a weeks' worth of training is hard and requires a dedicated team with a lot of enthusiasm. We are very lucky to have so many Research Software Engineers (RSEs) who put a lot of energy into teaching researchers what we know best, software development. Great teamwork will be visible to any student on the course, making the experience of attending the workshop so much more enjoyable.

One of our students from this year Jure Zgubic from Cambridge gave us this very welcome feedback:

“I loved the course this week. I had long been struggling with code development (and hiding my code from others, as one of the instructors mentioned). This was partly because I wasn’t confident about it and partly because I was unsure about how to work effectively with GitHub to make my code readable and usable! This course was a wonderful experience that I would wholeheartedly recommend to anyone writing code, not just Earth scientists! You managed to create a friendly environment, instructors were always happy to help, and I found the content to be at just the right level. I particularly enjoyed the object oriented programming and the pull request & conflict resolution sessions!”

Another student Cansu Uluseker from the Centre for Ecology and Hydrology (CEH):

“I wanted to extend my heartfelt thanks for the wonderful workshop held in Manchester. It was not only great but also incredibly useful. The content was relevant, engaging, and well-presented, and I truly appreciated the effort put into organising such an enriching experience.”

Our PI for the project Prof. David Schultz also provided encouraging feedback:

"Each year the course just keeps getting better and better.  It's a real pleasure to work with Anja, Doug, and the team. They have demonstrated why software development skills are needed by early career researchers in Earth and environmental sciences—and they deliver it!  They are one of the few groups providing this kind of training."

Do You Have a Centre for Doctoral Training (CDT)?

All PhD students and early career researchers, independent of the subject area they study, should have the option of signing up to training which provides them with essential software development skills for their studies and research.

We want to put out a call to all University of Manchester Centres for Doctoral Training to come together to fund regular workshops like the one above for our own University of Manchester based PhD students. Better software will lead to better research, researchers with solid coding skills have better chances within outside academia!

If you are interested in discussing this further please contact Anja Le Blanc.