An introduction to software sustainability

University of Bristol, Software Publishing Workshop, 16 November 2016. ORCID: 0000-0002-6809-5195

By Simon Hettrick

Modern research is impossible without software

From thrown-together scripts, through an abundance of complex spreadsheets, to the millions of lines of code behind large-scale infrastructure, there are few areas where software does not play a fundamental part in research

2009...

Software Sustainability Institute

Cultivating better, more sustainable, research software to enable world-class research

Why care about software?

1. There's a lot of software out there

Reviewed 50,000 research grant titles and abstracts

[1]

30%

of reviewed grants were related to software use. 

[1]

Use

software

Fundamental to

results

Develop own code

69%

92%

56%

[2]

30%

69%

[3]

£1.7 billion

£4.1 billion

2. It's not limited to the "usual crowd"

[2]

3. The potential for huge impact

"A script necessary to convert the input... to be compatible with PLINK was not run when merging the ancient genome... with the contemporary populations SNP panel, leading to homozygote positions to the human reference genome being dropped as missing data...

[4]

"there is no detectable Western Eurasian component in Yoruba and Mbuti"

"code... is reused... The error is in the code that converts a 64-bit floating-point number to a 16-bit signed integer... the 64-bit numbers [are] larger... than [the previous code], triggering an overflow condition...

 

...[the] backup computer crashes, followed 0.05 seconds later by a crash of the primary computer."

[5]

What is software sustainability?

"The software you use today will be available - and continue to be improved and supported- in the future"

  1. Reliability

  2. Reproducibility

  3. Reusability

What problems do

we face?

  • Little awareness of software's role in research

  • Little identification and citing of software

  • Difficult to identify good software

  • No clear incentives for investing in software

  • Little understanding of licensing and ownership

  • Lack of software skills

  • Lack of career path for software experts in academia

[6]

The Institute's solution

Software

Training

Community

Policy

Over 72 projects

All 7 Research Councils

Over 3000 learners

Over 100 courses

80 guides, 50000 views 

RSE campaign

Demographic studies

Finance and career studies

76 Fellows across domains

Over 20 workshops

 

Outreach

15,000+ monthly visits

Vibrant Twitter community

Awareness

Publicity

Top ten reasons to not publish your code

by Randall J. LeVeque

[7]

"The proof is too ugly to show anyone else. It would be too much work to rewrite it neatly so others could read it."

"I didn’t actually prove the theorem, my student did. And the student has since graduated, moved to Wall Street, and thrown away the proof. But the student was very good, so I’m sure it was correct."

"The proof is valuable intellectual property. The ideas in this proof are so great that I might be able to commercialise them some day, so I’d be crazy to give them away."

Skills

*Refs [1]

Use

software

Fundamental to

results

Develop own code

69%

92%

56%

Research Software Engineers Supporting Science: Survey Responses

by Caroline Jay, Robert Haines and Rawan Sanyour

 [8]

"I was expecting it to be easy and intuitive but I found it very difficult. I am not sure of the consequences of the commands so I am very scared of using them."

"Repositories are not straightforward, especially if you don’t have a technical background"

60%

30%

0%

Data

management

Computational

research

Software engineering

Intellectual

property

OS licensing

67%

62%

56%

56%

44%

130,000 academic staff

110,000 postgraduates

 [9, 10]

Software carpentry

...and other carpentries

 [11]

100%

50%

0%

Before

workshop

After

workshop

Version control test question

Yes

No

Yes, with

documentation

60%

30%

0%

24%

47%

29%

1

least likely

5

most likely

2

3

4

How likely are you to use these skills?

Doctoral programmes

...and then undergraduate

Universities with a CDT, DTC or DTP

Careers

Research

Software

Engineering

Researcher

Software

Engineer

Researcher

developer

Here

jobs.ac.uk

10,000 jobs assessed

~400 related to software development (4%)

 

Analyst Developer Analyst Programmer Analyst Programmer - SITS (x 3) Analyst/Programmer Applications Developer Applied Scientist Architectural Robotics Developer Assistant Data Programmer Assistant Project Manager Atmospheric Correction and Radiative Transfer Model Scientist Audio Software Developer - KTP Associate Bioinformatician Bioinformatician In Potato Genomics and Genetics Bioinformatician/Computational Bioscientist in Microbiology Bioinformaticians Bioinformatics Analyst Bioinformatics Postdoctoral Researcher Bioinformatics scientist Biometric Software Systems Developer Biorespository Software Developer C++ / 3D Graphics Software Engineer Casebooks Project Editor (Research Assistant/Associate) Climate Researcher (Research Associate) Clinical Study Programmer CoMPLEX Research Associate Computational Biologist / Bioinformatician Computational Scientist Computational Scientist in Computational Fluid Dynamics & Industrial Applications Computational Scientist in Structural Mechanics and Industrial Applications Computer Scientist Computer Vision Researcher Content Developer/Programmer Control Engineer-IMG - 3 posts CREATe Data Specialist Data Analyst Data Integration Coordinator Data Manager x3 Database and Software Engineer Database Manager/Researcher Database Programmer Digital Media Technician E-Learning Portal Manager (KTP Associate) e-Learning Systems Development Analyst e-Learning Systems Development Analyst (Moodle, SQL) E-Learning Web Developer E-Portfolio Learning Technologist Embedded Systems Engineer Engineering Technician Environmental Scientist EPSRC Studentship on Algorithmic Construction of Finsler-Lyapunov Functions Experimental Officer in Bioinformatics Experimental Psychologist Finance Assistant Gaia Alerts Software Developer Gaia Software Developer (Gaia UK Team) GIS Applications Specialist Graduate Programmer / Software Developer Graphics Programmer Health Data Manager / Scientist High Throughput Bioinformatician High Throughput Sequencing Bioinformatician (Two posts) HIVE Manager/ HIVE Co-ordinator HIVE Senior Researcher and Technical Lead Hydro-informatics Scientific Software Developer Image Analysis Manager for Cancer Imaging Information Systems Developer Instrumentation Engineer Investigator Statistician IT Developer IT Services Manager IT Services Specialist (e-Learning Systems) IT Support Technician (Unix / Windows Systems) Knowledge Transfer Partnership (KTP) Associate: Innovent Technologies LTD Knowledge Transfer Partnerships (KTP) Associate - Software Developer KTP Associate - Robot Vision Scientist (Research Fellow) KTP Associate (Fixed Term Contract for 24 months) KTP Associate (Precision Agriculture Data Analyst) KTP Associate – Graduate Web Developer KTP Associate: Electronics / Robotics Engineer Learning Technologist Leicester Respiratory BRU IT Developer Linguist / Psycholinguist Maker Space Technician Marie Curie Early Stage Researcher Marie Curie Early Stage Researcher in Radar Rainfall for Integrated Water Quality Modelling Marine Earth Observation Scientists Medical Statistician Medical Statistician/Senior Medical Statistician Metrology Engineer Mobile Application Developer NASC IT Support - Programmer and Systems Administrator (Fixed-term) NIHR Research Methods Fellow PDRA on EU Project on Automated Multisensor Surveillance Planning Officer Policy Modeller 2014 Post - Doctoral Research Assistant INSTRON Post Doctoral Research Worker Post Doctoral Researcher in the application of Digital Technology Post-Doctoral Research Assistant in Simulation and Visualization Post-Doctoral Research Associate Post-Doctoral Research Associate (Pathogen Genomics) Post-Doctoral Research Fellow Postdoctoral Fellow - population genetics / evolutionary genetic Postdoctoral Fellow in Bioinformatics Postdoctoral Fellow in Cancer Therapeutics Postdoctoral Research Assistant Postdoctoral Research Associate Postdoctoral Research Fellow Postdoctoral Research Scientist Postdoctoral Researcher in Declarative (Logic and Functional) Programming Postdoctoral Researcher Postdoctoral Scientist Postdoctoral statistician Postdoctoral Training Fellow - Statistical and Computational Genetics of Autism Principal / Senior Bioinformatician Principal Bioinformatician Product Development Engineer (Rail) Publishing Portal Web Developer Radio Frequency Engineer Reader in Computer Science Reporting Analyst Research (Software) Engineer Research Assistant Research Associate Research Fellow Research Image Data Manager, Biomedical Engineering Research Officer Research Officer – Social Protection Research postgraduate Research Programmer Research Scientist Research Scientist / Senior Research Scientist Research Scientist in Machine Learning and Computer Vision Research Software Developer Research Software Developer for the Herchel Smith Professor of Organic Chemistry Research Software Engineer Research Studentship Research Worker Researcher SAP Trainee Technical Analyst Scientific Officer with Michela Garofalo Scientist SEAHA Studentship: Extracting epidemiological data from collections SEEG Data Archive Manager Senior / Research Associate in Clinical Integration and Image Analysis for Fetal Surgery Senior Analyst Programmer (Business Analysis) Senior Analyst/Programmer Senior Bioinformatician Senior Bioinformatician / Bioinformatician Senior Computational Statistician - Spatial Models Senior Data Acquisition Scientist / Data Acquisition Scientist Senior Data Manager Senior Database Administrator Senior IT Developer Analyst Senior Mathematical Modeller Senior Media Developer Senior Postdoctoral Researcher - Evolutionary and Computational Analysis of Infectious Disease (Phylodynamics) Senior Research Assistant Senior Research Associate Senior Research Associate – Molecular Modelling & Simmulation Senior Research Associate in Quantitative Clinical MRI Senior Research Fellow Senior Research Fellow/Research Fellow in Vibration Diagnostics and Prognostics/Digital Signal Processing Senior Research Laboratory Technician Senior Research Technician Senior Software Developer in Bioinformatics Senior Software Engineer / Software Engineer Senior Statistical Epidemiologist Senior Systems Administrator Senior Technician / Demonstrator (UCMK) Senior Web Developer SharePoint Developer Software Developer Software Developer (Bioinformatics) Software Developer (KTP Associate) Software Developer x 2 Software Developer/Programmer Software Developers in e-Learning Software Engineer Software/ Database Developer (KTP Associate) Sports Programme Manager Statistical Geneticist Statistical Programmer/Data Scientist Statistician Statistician/Epidemiologist Student and Enrolment Services Manager SWCAR Information Assistant System Administrator Systems Developer Systems, Data and Applications Team Leader Teaching Fellow in Computational Methods UTRCI Research Scientist, Control Systems Web Application Programmer Web Developer  

 

194 different job titles

Research Software Engineers (RSEs)

Growth of UKRSE Association

https://www.software.ac.uk/blog/2016-09-09-not-so-brief-history-research-software-engineers

A not-so-brief history of Research Software Engineers

Software is fundamental to research. We cannot ignore software's role.

 

Software sustainability is not a single problem. It's a suite of problems with origins in every aspect of the research community and its work.

 

Achieving sustainability is about raising awareness, providing skills and changing practices.

Other useful links

Where to publish code

  - https://www.software.ac.uk/which-journals-should-i-publish-my-software

Publish or be damned? An alternative impact manifesto for research software

  - https://www.software.ac.uk/blog/2016-10-06-publish-or-be-damned-alternative-impact-manifesto-research-software

Software citation guidelines

  - https://doi.org/10.7717/peerj-cs.86

Top five tips for releasing software

  - https://www.software.ac.uk/blog/2016-10-06-top-five-tips-releasing-software

References

[1]:https://www.software.ac.uk/blog/2016-09-12-ps840-million-uks-investment-software-reliant-research-2013

[2]:http://www.software.ac.uk/blog/2014-12-04-its-impossible-conduct-research-without-software-say-7-out-10-uk-researchers

[3]:https://www.gov.uk/government/uploads/system/uploads/attachment_data/file/278326/bis-14-p200-science-and-research-budget-allocations-for-2015-to-2016.pdf - source of £5.8B quote

[4]:http://science.sciencemag.org/content/early/2015/10/07/science.aad2879.full

[5]:https://www.ima.umn.edu/~arnold/disasters/ariane5rep.html

[6]:http://www.software.ac.uk/attach/Research_Software_Sustainability_Report_on_KE_Workshop_Feb_2016_FINAL.pdf

[7] Society of Industrial and Applied Mathematics website (SIAM News, Vol. 46, April 2013

[8] https://doi.org/10.5281/zenodo.157352

[9] Staff in Higher Education 2014/15, HESA, Table K

[10] https://www.hesa.ac.uk/data-and-analysis/students

[11] http://software-carpentry.org/

20161116 - Software Publishing Workshop

By Simon Hettrick

20161116 - Software Publishing Workshop

Seminar at University of Bristol about software sustainability

  • 1,270