By Edward Smith, Institute’s fellow, Imperial College London.
The Collaborations Workshop 2017 (CW17) was the first event I've attended by the Software Sustainability Institute. The topic this year—big data and internet of things (IoT)—didn't exactly inspire me with hope that it would be relevant to my (heavily numerical) work. I couldn't have been more wrong; it was great to gain an insight into the wider infrastructure of software development and, by moving out of my comfort zone, get a new perspective on how similar problems are solved. The keynote talks by Usman and Thomas were very interesting and I have even played around with the IoT Adafruit Feather HUZZAH we were given. The "unconference" aspects meant lots of time to chat and it was great to meet people struggling with the same problems. The hackday was rewarding, again a first for me, working together on a shared GitHub repository. We managed to put together a web visualisation tools for migrant movements and a demo.
I gave a mini-workshop on my post processing software, PyDataView, which I recently made open-source. In preparing this, I was worried I had made it a little too technical but from the start of the workshop it was apparent the majority of the audience were experts in software. Despite this, there seemed to be lots of interest and the discussion following the session were very useful. As pointed out, the software is essentially a graphical user interface (GUI) for people who don't like GUI's. The idea is to write a simple reader in object oriented Python code; then PyDataView lets you explore all your data quickly. Once you spot something interesting, you simply press a button and generate a Python script. You have all the flexibility of Python and the ease-of-use advantages of a GUI. Meeting other research software engineers really helps to shape the possible applications of your software.
A highlight of the workshop were some great discussions about test driven development with the team from University College London (UCL). The big realisation from this is that UCL have a far more established research software engineer (RSE) infrastructure and dedicated software team than we do. It was clear that Imperial College London is very under represented at these meeting and disappointingly uninvolved in the software movement. As an Institute fellow I certainly have my work cut out to address this.
Since coming back, I have spent far more time focusing on good software practices without feeling guilty about "wasting time" on details. Considering I'm funded on an Embedded Computational Science and Engineering (eCSE) grant, this is by no means a bad thing. I have also started planning my workshop, inspired by the meeting. The idea was always to try to develop a unit-testing framework for high performance computing (HPC) platforms. I recently taught a Python course and the interest in this means I will repeat at least once more. As part of this I built in some test-driven development and version control, but it was clear these are alien concepts to many people. I therefore intend to focus the workshop exclusively on test-driven development and version control on the HPC platform. This would aim to bring in colleagues (ex-academics) who work in industrial software development to share their perspective. The workshop will end with a hands-on session where attendees develop basic tests using a chronological script, Git and runs a range of tests in a minimal amount of computing time. I have since been discussing with the computing support team at Imperial and this is certainly something they are very keen to develop. One thing that came from the hackday is the inspiration to use the Institute fellowship funding to organise a similar hackday style competition at Imperial. I plan to offer a prize for the best solutions to develop a continuous integration platform which runs jobs on a range of processors on Imperial supercomputer. Ideally the attendees of the workshop I gave, as well as hopefully some more experienced computer scientists, will be tempted to compete. Worst case, everyone learns a bit more about testing, but with a little luck something useful could come of this.
My only concern from CW17 is that the whole event felt a bit like we were preaching to the choir. It would be great to see new PhD students just learning computing as well as established Professors who want to improve the software they are forcing their group to write. I have been doing my best to spread the word and attract more scientists and engineers to the next Collaborations Workshop. At the next round of the Python course I will give at IC, in the workshop I will organise and following competition I will aim to raise awareness of the Software Sustainability Institute. The CW17 event made it very clear the benefits of these conferences to a rounded academic education, which should include how to write good software. Of the many conferences you attend as an academic, at least one should be on the software itself.
I would like to state my appreciation to the Software Sustainability Institute for sponsoring my attendance at this event and I am really looking forward to the RSE Conference in Manchester later in the year!