Software and research: the Institute's Blog

Latest version published on 21 May, 2018.

8345962625_fe0bfe8de9_z.jpgBy Matthew Upson, Data Scientist at Juro.

Unlike most of the 2017/2018 cohort, when I applied to become a fellow of the Software Sustainability Institute, I was a civil servant rather than an academic. In this blog post I want to talk about why Government needs sustainable software, the work being done to deliver it, and the lessons we learnt after the first year.

But Government already has sustainable software...

There's quite a bit of disambiguation that needs to be done to the statement 'Government needs sustainable software'. In fact, Government already has sustainable software, and lots of it. One need only look at alphagov, the GitHub organisation for the Government Digital Service. Sustainable, often open source, software is alive and well here, written by professional software developers, and in many other places in central and local Government alike. But this isn't the whole story.

There are other parts of Government that write software, but like many in academia, you may have a hard time convincing them of this fact. In central Government (this is where my experience lies, so I will focus largely upon it) there are literally thousands of statisticians, operational researchers, social researchers, economists, scientists, and engineers. Any one of these…

Continue Reading

Latest version published on 18 May, 2018.

ba.pngBy Becky Arnold, University of Sheffield 

Coding is now the backbone of much of scientific research. Despite this in many cases the coding education of researchers is nonexistent, or doesn’t extend far beyond how to use a for loop. As a result we largely learn tips, tricks and best practice the hard way, and in small fragments. The solution- teach each other! If everyone knows a little then put together we know a lot.

The approach of the Sheffield astrophysics group

Since May 2017 we have held lunchtime code review and collaboration meetings every two weeks. These meetings are very informal to encourage discussion, and as well as reviewing one anothers code we use these sessions to exchange information. If you spent the week figuring something out, read an interesting article, or picked up a new trick here is the place to tell others about it. People can also opt to give short tutorials if they wish, for example we’ve had ones on version control, wrapping one language with another, and best practice.

These sessions have had numerous benefits:

1. Save time and frustration

Researchers have a vast array of administrative and research responsibilities which leave little time to spare. But how many days of that valuable time have you spent knocking your head against coding issues, scouring stack overflow, and crying into coffee cups at 2 am about the code that just won’t work. An hour every week or two…

Continue Reading

Latest version published on 15 May, 2018.

DH.pngBy Becky Arnold, University of Sheffield

On the 2nd of May 2018, David Hubber, a postdoc at Ludwig-Maximilians-Universität Munich, gave a seminar on Long-term Software Development for Scientists, as part of a series of talks around good practice at the University of Sheffield. David discussed how to structure code efficiently, code module design, decoupling strategies and test-driven development.

I’ve had the pleasure of meeting David previously— we’re both astrophysicists working on simulations of star forming regions. In particular David has a great deal of experience in working with big codes that span tens of thousands of lines. While my own work is of a smaller scale I and I think many researchers are familiar with writing programs that start small and quickly evolve into a huge unmanageable mess.

David discussed the dangers of “the blob” and “spaghetti code”, before going on to cover strategies to avoid them. Some of these strategies were stylistic, he described how keeping consistent with style choices in your code makes it easier to understand for your future self and others, thus making it more maintainable.

He also discussed how comments (while absolutely vital) can also be something of a double edged sword if misused. Excessive comments can…

Continue Reading

Latest version published on 11 May, 2018.

38689453920_3f7c3fa2d5_z.jpgBy Anna Krystalli, University of Sheffield, and Toby Hodges, EMBL Bio-IT

Read part 1 and part 2 of this series of blog posts.

03: Continuing Challenges

Moving From a Top Down to a Decentralised Model

We were all in agreement that one of the most challenging aspects of sustaining community is enlisting contributions. Challenges to peoples time and the non trivial work providing support and encouragement required to foster welcoming inclusive environments pose challenges to motivating participation.

To a certain extent, dedicated seed staff will likely continue to be an important determinant on the success of a community building initiative. While making the most of the available tools and practices we've been discussing (automation, open, reusable materials, good communication channels) can really aid decentralisation, sustaining momentum and mechanisms to empower and recruit grassroots leadership is still required.

Lack of Funding & Recognition

Something I found really interesting was that both (Toby) EMBL and (Tobias) DLR had not realised how far ahead the initiatives they represented were in the areas they were leading. Tobias…

Continue Reading

Latest version published on 10 May, 2018.

16341039835_70b510396f_z.jpgBy Anna Krystalli, University of Sheffield, and Toby Hodges, EMBL Bio-IT

02: What Works

In this blog series, we're sharing our experiences from our meeting at Heidelberg to discuss how to build communities to support Research Software Engineering. We provided the background to our meeting and introduced the participants in our first post. In this one we pull out the recurring threads in our experiences of what worked.

Knowing your community

This is fundamental to the community's ability to add value and should be one of the first community development steps. We need to know both where the community is at and where they want to go. Activities responsive to such community goals, needs and aspirations will generate a higher rate of engagement and voluntary participation.

And it all started with a survey: we all started with some form of surveying our communities. But on-going revisiting and reflecting on such fundamentals is important for community sustainability so.

Effective communication channels

Community == communication

Effective communication channels are vital for both the transfer and processing of information, particularly of tacit knowledge, but also for fostering social, collaborative relationships…

Continue Reading