SlideShare a Scribd company logo
1 of 39
Scientific Software:
sustainability, skills & sociology
Neil Chue Hong, N.ChueHong@software.ac.uk
Director, Software Sustainability Institute
US/IAEA Workshop on Software Sustainability
for Safeguards Instrumentation, Vienna
Institute
Software
Sustainability
www.software.ac.uk
The Software Sustainability Institute
A national facility for cultivating world-
class research through software
• Better software enables better research
• Software reaches boundaries in its
development cycle that prevent
improvement, growth and adoption
• Providing the expertise and services
needed to negotiate to the next stage
• Developing the policy and tools to
support the community developing and
using research software
Supported by EPSRC
Grant EP/H043160/1
Institute
Software
Sustainability
www.software.ac.uk
Anatomy of my talk
Institute
Software
Sustainability
www.software.ac.uk
SOFTWAREis…
…areIMPORTANT
everywhere
hard to define
long-lived
context
reasons
people
Software is everywhere
(even where you expect it)
Institute
Software
Sustainability
www.software.ac.uk
Software is pervasive
Institute
Software
Sustainability
Tamiflu binding to mutant influenza
A water-swap reaction coordinate for the calculation of
absolute protein-ligand binding free energies
Woods CJ, Malaisree M, Hannongbua S, Mulholland AJ
J. Chem. Phys. (2011) vol. 134, pp. 054114
http://dx.doi.org/10.1063/1.3519057
Favouring of disease risk alleles
Selection at pleiotropic loci underlies disease
co-occurrence in human populations.
Navarro, Haley, Karosas et al.
Submitted to Nature Genetics
Behind every great piece of science…
#go through each SNP of interest
for(my $x = 0; $x < scalar @pos; $x++)
{
#and then each downstream SNP of interest
for(my $y = $x+1; $y < scalar @pos; $y++)
{
#if SNPs within our chosen distance (500kb) and both present in the haplotypes file
if((!($trait[$x] eq $trait[$y])) && (abs($pos[$x] - $pos[$y]) <= 500000) && (exists($legArr
{
my $snp1ArrayPos = "”;
my $snp2ArrayPos = "”;
my $snp1All = "”;
my $snp2All = "”;
#create output file for this SNP pair
my $filename = "ConditionedResults2/$chr[$x].$pos[$x]-$pos[$y].EHH.GBR.2.txt”;
print "$filenamen”;
unless (-e $filename) {
open(OUT, ">$filename");
#####################CHANGE THESE IF NOT FOCUSING ON SECOND SNP####################
my $start = $pos[$y]-500000;
if ($start < 1) {
$start = 1;
}
my $end = $pos[$y]+500000;
if ($end > $chrLengths{$chr[$x]}) {
$end = $chrLengths{$chr[$x]};
}
Software is long-lived
(and outlasts computational hardware)
Institute
Software
Sustainability
www.software.ac.uk
Architectural Dominance
Institute
Software
Sustainability
www.software.ac.uk
Image courtesy PDES Inc
Slide from Sean Barker, BAE SYSTEMS, DPC Designed to Last
Computational Chemistry - CASTEP
From the first implementation of a DFT algorithm to a
completely new code to community supported software
• Individual
• Group
• Consortium
• W/ industry
• Community
• Active
Software advances
< hardware speedup
13http://www.castep.org/
Institute
Software
Sustainability
www.software.ac.uk
LOTAR: storing aeronautical models
Life of CAD System: 10 years
Time between CAD Versions: 6 months
Life of Product: 70 years +
time
Production
CAD Obsolete
CAD Forgotten
Services
Legal Liability
Modifications
10 years 20 30 40 50 60
Spares
Image courtesy PDES Inc
Slide from Sean Barker, BAE SYSTEMS, DPC Designed to Last
Institute
Software
Sustainability
www.software.ac.uk
So we have to maintain it…
• “The modification of a software product after
delivery to correct faults, to improve
performance or other attributes, or to adapt the
product to a modified environment” – IEEE defn.
– Corrective maintenance: fixing faults
– Adaptive maintenance: adapting to changes in
environment
– Perfective maintenance: meeting new/different user
requirements
– Preventative maintenance: increasing maintainability
Institute
Software
Sustainability
www.software.ac.uk
… because we cannot change this
with process and practice alone …
• “Many of us have tried to discover
ways to prevent code from
becoming legacy. But …
prevention is imperfect. Even the
most disciplined development
team, knowing the best principles,
using the best patterns, and
following the best practices will
create messes from time to time.
The rot still accumulates. It’s not
enough to prevent the rot – you
have to be able to reverse it.”
Institute
Software
Sustainability
www.software.ac.uk
… so we work with what we have
• Identify change points
• Find test points
• Break dependencies
• Write tests
• Make changes and refactor
Testing, infrastructure, documentation are key
Institute
Software
Sustainability
www.software.ac.uk
Software is hard to define
(and thus hard to sustain)
Institute
Software
Sustainability
www.software.ac.uk
What do we sustain:
- Workflow?
- Software that runs workflow?
- Software referenced by workflow?
Novel reuse of public sector data
http://www.mysociety.org
What do we sustain:
- Map?
- Software that creates map?
Sustaining Function or Form
21
What do we sustain:
- Function?
- Form?
Context is important
(otherwise all you have is an object)
Institute
Software
Sustainability
www.software.ac.uk
Comb badge, Museum of London
• Without context, objects have no meaning
What’s this item?
32x28mm, lead alloy, late Medieval 14-15th century
What about repositories?
re⋅pos⋅i⋅tor⋅y
/noun/ [ri-poz-i-tawr-ee]
• 1. a receptacle or place where things are
deposited, stored, or offered for sale.
• 2. a burial place; sepulchre.
Institute
Software
Sustainability
www.software.ac.uk
The Zombie Effect
• Software not always fully alive
when you reanimate it!
• Complex set of dependencies
– Significant Properties of Software
– Purposes and benefits of
software preservation
http://www.jisc.ac.uk/media/documents/
programmes/preservation/significantprop
ertiesofsoftware-final.doc
http://softwarepreservation.jiscinvolve.org/wp/
Reasons are important
(so you take the right approach)
Institute
Software
Sustainability
www.software.ac.uk
Why are you considering
software sustainability?
Achieve legal compliance
Create heritage value
Enable continued access
to data and services
Encourage software reuse
Purpose
Institute
Software
Sustainability
www.software.ac.uk
How are you going to choose the right
approach?
Preservation (techno-centric)
Emulation (data-centric)
Migration (functionality-centric)
Transition (process-centric)
Hibernation (knowledge-centric)
Approach
Institute
Software
Sustainability
www.software.ac.uk
Preservation vs sustainability
Image courtesy of RGB Kew – not for reuse
Image courtesy of London Permaculture under CC-by-nc-sa license
Preservation?
Sustainability?
Institute
Software
Sustainability
www.software.ac.uk
People are important
(people are infrastructure too)
Institute
Software
Sustainability
www.software.ac.uk
Sustainable Communities
• Cohesion and Identity: Creating
a community
• Tolerance and Diversity: Smart
growth through collaboration
• Efficient use of resources:
Leveraging infrastructure
• Adaptability to change:
Governing sustainably
Institute
Software
Sustainability
www.software.ac.uk
Cultivate Contributors – R project
• Basics: Website, mailing list, code repository, issue
resolution
• Remove barriers to participation, increase efficiency
• 1993: First public release; 2 devs
• 1995: Code open sourced; 3 devs
• 1996: r-testers list set up
• 1997: lists split: r-announce, r-help,
r-devel; public CVS; 11 devs
• 2000: CRAN split and mirror
• 2001: BioConductor
• 2003: Namespaces
• 2005: I8n, L8n
• 2007: R-Forge
• Today: BioConductor (33 core devs),
R-Forge (532 projects, 1562 devs),
CRAN (1400+ packages)
34
http://cran.r-project.org/doc/html/interface98-paper/paper_2.html
Institute
Software
Sustainability
www.software.ac.uk
We under-appreciate training
• Basic training for
kitchen chef: 3-4 years
• Head chef: 10 years
• Basic training for s/w
engineer: 3-4 years
• Architect: 10 years
PhotobyZagatBuzz
• Training in S/W Dev in UG Physics: 140 hours
• Training in S/W Dev in UG Geography: 0 hours
Institute
Software
Sustainability
www.software.ac.uk
Software Carpentry
• Lab skills for scientific
computing
– http://software-carpentry.org
– International initiative to
teach basics of software
engineering to
researchers
• The “why” more than
the “how”
– We ran 13 workshops
in 2013 to 600+ learners
Incentives are important
Institute
Software
Sustainability
www.software.ac.uk
Courtesy of James Howison and James Herbsleb
Incentives and Integration In Scientific Software Production
Rewrite by original team:
address fragility
Fork to add specific functionality
Maintained separately
Optimised for
hardware
Facilitate hardware
sales
Exploit new techniques /
architectures
And money isn’t everything
Institute
Software
Sustainability
www.software.ac.uk
Funding/Staffing
Time
Next expt.
running
Experiment
Running
Analysis of
Data
New experiment
design starts
Maintenance of software
to process data from
physics experiment
So beware your bus factor
Institute
Software
Sustainability
www.software.ac.uk
Summary of my talk
Institute
Software
Sustainability
www.software.ac.uk
SOFTWAREis…
…areIMPORTANT
everywhere
hard to define
long-lived
context
reasons
people
Take home messages
Institute
Software
Sustainability
www.software.ac.uk
No-one sets out to write
unsustainable software
Software sustainability is important
because it has to happen
People need the skills and incentives
to maintain software through its lifetime
Work with us – www.software.ac.uk
Institute
Software
Sustainability
www.software.ac.uk

More Related Content

Similar to Scientific Software: Sustainability, Skills & Sociology

Software Sustainability in e-Research: Dying for a Change
Software Sustainability in e-Research: Dying for a ChangeSoftware Sustainability in e-Research: Dying for a Change
Software Sustainability in e-Research: Dying for a ChangeNeil Chue Hong
 
Doing Science Properly In The Digital Age - Rutgers Seminar
Doing Science Properly In The Digital Age - Rutgers SeminarDoing Science Properly In The Digital Age - Rutgers Seminar
Doing Science Properly In The Digital Age - Rutgers SeminarNeil Chue Hong
 
Software Sustainability: Better Software Better Science
Software Sustainability: Better Software Better ScienceSoftware Sustainability: Better Software Better Science
Software Sustainability: Better Software Better ScienceCarole Goble
 
Six Principles of Software Design to Empower Scientists
Six Principles of Software Design to Empower ScientistsSix Principles of Software Design to Empower Scientists
Six Principles of Software Design to Empower ScientistsDavid De Roure
 
Cloud Standards in the Real World: Cloud Standards Testing for Developers
Cloud Standards in the Real World: Cloud Standards Testing for DevelopersCloud Standards in the Real World: Cloud Standards Testing for Developers
Cloud Standards in the Real World: Cloud Standards Testing for DevelopersAlan Sill
 
Better Software, Better Practices, Better Research
Better Software, Better Practices, Better ResearchBetter Software, Better Practices, Better Research
Better Software, Better Practices, Better ResearchShoaib Sufi
 
Socio-technical evolution and migration in the Ruby ecosystem
Socio-technical evolution and migration in the Ruby ecosystemSocio-technical evolution and migration in the Ruby ecosystem
Socio-technical evolution and migration in the Ruby ecosystemTom Mens
 
The Software Sustainability Institute and engagement with the Digital Humanities
The Software Sustainability Institute and engagement with the Digital HumanitiesThe Software Sustainability Institute and engagement with the Digital Humanities
The Software Sustainability Institute and engagement with the Digital HumanitiesShoaib Sufi
 
Software Analytics - Achievements and Challenges
Software Analytics - Achievements and ChallengesSoftware Analytics - Achievements and Challenges
Software Analytics - Achievements and ChallengesTao Xie
 
Software system design sample
Software system design sampleSoftware system design sample
Software system design sampleNorman K Ma
 
e-infrastructural needs to support informatics
e-infrastructural needs to support informaticse-infrastructural needs to support informatics
e-infrastructural needs to support informaticsDavid Wallom
 
第1回バイオインフォマティクスデータ可視化セミナー@Riken
第1回バイオインフォマティクスデータ可視化セミナー@Riken第1回バイオインフォマティクスデータ可視化セミナー@Riken
第1回バイオインフォマティクスデータ可視化セミナー@RikenKeiichiro Ono
 
Software Analytics: Data Analytics for Software Engineering
Software Analytics: Data Analytics for Software EngineeringSoftware Analytics: Data Analytics for Software Engineering
Software Analytics: Data Analytics for Software EngineeringTao Xie
 
Structural Biology in the Clouds: A Success Story of 10 years
Structural Biology in the Clouds: A Success Story of 10 yearsStructural Biology in the Clouds: A Success Story of 10 years
Structural Biology in the Clouds: A Success Story of 10 yearsAlexandreBonvin2
 
Cultivating Sustainable Software For Research
Cultivating Sustainable Software For ResearchCultivating Sustainable Software For Research
Cultivating Sustainable Software For ResearchNeil Chue Hong
 
Bridging Environmental Data Providers and SeaDataNet DIVA Service within a Co...
Bridging Environmental Data Providers and SeaDataNet DIVA Service within a Co...Bridging Environmental Data Providers and SeaDataNet DIVA Service within a Co...
Bridging Environmental Data Providers and SeaDataNet DIVA Service within a Co...Blue BRIDGE
 
Software Sustainability Institute
Software Sustainability InstituteSoftware Sustainability Institute
Software Sustainability InstituteNeil Chue Hong
 

Similar to Scientific Software: Sustainability, Skills & Sociology (20)

Software Sustainability in e-Research: Dying for a Change
Software Sustainability in e-Research: Dying for a ChangeSoftware Sustainability in e-Research: Dying for a Change
Software Sustainability in e-Research: Dying for a Change
 
Doing Science Properly In The Digital Age - Rutgers Seminar
Doing Science Properly In The Digital Age - Rutgers SeminarDoing Science Properly In The Digital Age - Rutgers Seminar
Doing Science Properly In The Digital Age - Rutgers Seminar
 
Software Sustainability: Better Software Better Science
Software Sustainability: Better Software Better ScienceSoftware Sustainability: Better Software Better Science
Software Sustainability: Better Software Better Science
 
Six Principles of Software Design to Empower Scientists
Six Principles of Software Design to Empower ScientistsSix Principles of Software Design to Empower Scientists
Six Principles of Software Design to Empower Scientists
 
Cloud Standards in the Real World: Cloud Standards Testing for Developers
Cloud Standards in the Real World: Cloud Standards Testing for DevelopersCloud Standards in the Real World: Cloud Standards Testing for Developers
Cloud Standards in the Real World: Cloud Standards Testing for Developers
 
Better Software, Better Practices, Better Research
Better Software, Better Practices, Better ResearchBetter Software, Better Practices, Better Research
Better Software, Better Practices, Better Research
 
Socio-technical evolution and migration in the Ruby ecosystem
Socio-technical evolution and migration in the Ruby ecosystemSocio-technical evolution and migration in the Ruby ecosystem
Socio-technical evolution and migration in the Ruby ecosystem
 
resume
resumeresume
resume
 
The Software Sustainability Institute and engagement with the Digital Humanities
The Software Sustainability Institute and engagement with the Digital HumanitiesThe Software Sustainability Institute and engagement with the Digital Humanities
The Software Sustainability Institute and engagement with the Digital Humanities
 
Software Analytics - Achievements and Challenges
Software Analytics - Achievements and ChallengesSoftware Analytics - Achievements and Challenges
Software Analytics - Achievements and Challenges
 
Session 36 - Engage Results
Session 36 - Engage ResultsSession 36 - Engage Results
Session 36 - Engage Results
 
Software system design sample
Software system design sampleSoftware system design sample
Software system design sample
 
e-infrastructural needs to support informatics
e-infrastructural needs to support informaticse-infrastructural needs to support informatics
e-infrastructural needs to support informatics
 
第1回バイオインフォマティクスデータ可視化セミナー@Riken
第1回バイオインフォマティクスデータ可視化セミナー@Riken第1回バイオインフォマティクスデータ可視化セミナー@Riken
第1回バイオインフォマティクスデータ可視化セミナー@Riken
 
Software Analytics: Data Analytics for Software Engineering
Software Analytics: Data Analytics for Software EngineeringSoftware Analytics: Data Analytics for Software Engineering
Software Analytics: Data Analytics for Software Engineering
 
Structural Biology in the Clouds: A Success Story of 10 years
Structural Biology in the Clouds: A Success Story of 10 yearsStructural Biology in the Clouds: A Success Story of 10 years
Structural Biology in the Clouds: A Success Story of 10 years
 
Sgci esip-7-20-18
Sgci esip-7-20-18Sgci esip-7-20-18
Sgci esip-7-20-18
 
Cultivating Sustainable Software For Research
Cultivating Sustainable Software For ResearchCultivating Sustainable Software For Research
Cultivating Sustainable Software For Research
 
Bridging Environmental Data Providers and SeaDataNet DIVA Service within a Co...
Bridging Environmental Data Providers and SeaDataNet DIVA Service within a Co...Bridging Environmental Data Providers and SeaDataNet DIVA Service within a Co...
Bridging Environmental Data Providers and SeaDataNet DIVA Service within a Co...
 
Software Sustainability Institute
Software Sustainability InstituteSoftware Sustainability Institute
Software Sustainability Institute
 

More from Neil Chue Hong

Why developing research software is like a startup (and why this matters)
Why developing research software is like a startup (and why this matters)Why developing research software is like a startup (and why this matters)
Why developing research software is like a startup (and why this matters)Neil Chue Hong
 
UK Funder Policy - the results of the Academic Spring?
UK Funder Policy - the results of the Academic Spring?UK Funder Policy - the results of the Academic Spring?
UK Funder Policy - the results of the Academic Spring?Neil Chue Hong
 
Software, Training and Users Panel: the Software Sustainability Institute's View
Software, Training and Users Panel: the Software Sustainability Institute's ViewSoftware, Training and Users Panel: the Software Sustainability Institute's View
Software, Training and Users Panel: the Software Sustainability Institute's ViewNeil Chue Hong
 
Doing Science Properly in the Digital Age: Software Skills for Free-Range Res...
Doing Science Properly in the Digital Age: Software Skills for Free-Range Res...Doing Science Properly in the Digital Age: Software Skills for Free-Range Res...
Doing Science Properly in the Digital Age: Software Skills for Free-Range Res...Neil Chue Hong
 
Where does it go from here? The role of software in digital repositories
Where does it go from here? The role of software in digital repositoriesWhere does it go from here? The role of software in digital repositories
Where does it go from here? The role of software in digital repositoriesNeil Chue Hong
 
Software Sustainability: a UK Perspective
Software Sustainability: a UK PerspectiveSoftware Sustainability: a UK Perspective
Software Sustainability: a UK PerspectiveNeil Chue Hong
 
Software Sustainability: preserving the future of research software
Software Sustainability: preserving the future of research softwareSoftware Sustainability: preserving the future of research software
Software Sustainability: preserving the future of research softwareNeil Chue Hong
 
Cat Herding and Community Gardens: Practical e-Science Project Management
Cat Herding and Community Gardens: Practical e-Science Project ManagementCat Herding and Community Gardens: Practical e-Science Project Management
Cat Herding and Community Gardens: Practical e-Science Project ManagementNeil Chue Hong
 
Why Good Software Sometimes Dies... and how to save it
Why Good Software Sometimes Dies... and how to save itWhy Good Software Sometimes Dies... and how to save it
Why Good Software Sometimes Dies... and how to save itNeil Chue Hong
 
UK e-Infrastructure: Widening Access, Increasing Participation
UK e-Infrastructure: Widening Access, Increasing ParticipationUK e-Infrastructure: Widening Access, Increasing Participation
UK e-Infrastructure: Widening Access, Increasing ParticipationNeil Chue Hong
 

More from Neil Chue Hong (11)

Why developing research software is like a startup (and why this matters)
Why developing research software is like a startup (and why this matters)Why developing research software is like a startup (and why this matters)
Why developing research software is like a startup (and why this matters)
 
UK Funder Policy - the results of the Academic Spring?
UK Funder Policy - the results of the Academic Spring?UK Funder Policy - the results of the Academic Spring?
UK Funder Policy - the results of the Academic Spring?
 
Software, Training and Users Panel: the Software Sustainability Institute's View
Software, Training and Users Panel: the Software Sustainability Institute's ViewSoftware, Training and Users Panel: the Software Sustainability Institute's View
Software, Training and Users Panel: the Software Sustainability Institute's View
 
Doing Science Properly in the Digital Age: Software Skills for Free-Range Res...
Doing Science Properly in the Digital Age: Software Skills for Free-Range Res...Doing Science Properly in the Digital Age: Software Skills for Free-Range Res...
Doing Science Properly in the Digital Age: Software Skills for Free-Range Res...
 
Where does it go from here? The role of software in digital repositories
Where does it go from here? The role of software in digital repositoriesWhere does it go from here? The role of software in digital repositories
Where does it go from here? The role of software in digital repositories
 
Software Sustainability: a UK Perspective
Software Sustainability: a UK PerspectiveSoftware Sustainability: a UK Perspective
Software Sustainability: a UK Perspective
 
Software Sustainability: preserving the future of research software
Software Sustainability: preserving the future of research softwareSoftware Sustainability: preserving the future of research software
Software Sustainability: preserving the future of research software
 
Data 2.0|
Data 2.0|Data 2.0|
Data 2.0|
 
Cat Herding and Community Gardens: Practical e-Science Project Management
Cat Herding and Community Gardens: Practical e-Science Project ManagementCat Herding and Community Gardens: Practical e-Science Project Management
Cat Herding and Community Gardens: Practical e-Science Project Management
 
Why Good Software Sometimes Dies... and how to save it
Why Good Software Sometimes Dies... and how to save itWhy Good Software Sometimes Dies... and how to save it
Why Good Software Sometimes Dies... and how to save it
 
UK e-Infrastructure: Widening Access, Increasing Participation
UK e-Infrastructure: Widening Access, Increasing ParticipationUK e-Infrastructure: Widening Access, Increasing Participation
UK e-Infrastructure: Widening Access, Increasing Participation
 

Recently uploaded

Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024Andreas Granig
 
Crafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM IntegrationCrafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM IntegrationWave PLM
 
The Impact of PLM Software on Fashion Production
The Impact of PLM Software on Fashion ProductionThe Impact of PLM Software on Fashion Production
The Impact of PLM Software on Fashion ProductionWave PLM
 
Optimizing Operations by Aligning Resources with Strategic Objectives Using O...
Optimizing Operations by Aligning Resources with Strategic Objectives Using O...Optimizing Operations by Aligning Resources with Strategic Objectives Using O...
Optimizing Operations by Aligning Resources with Strategic Objectives Using O...OnePlan Solutions
 
architecting-ai-in-the-enterprise-apis-and-applications.pdf
architecting-ai-in-the-enterprise-apis-and-applications.pdfarchitecting-ai-in-the-enterprise-apis-and-applications.pdf
architecting-ai-in-the-enterprise-apis-and-applications.pdfWSO2
 
JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)Max Lee
 
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdfStrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdfsteffenkarlsson2
 
Modern binary build systems - PyCon 2024
Modern binary build systems - PyCon 2024Modern binary build systems - PyCon 2024
Modern binary build systems - PyCon 2024Henry Schreiner
 
KLARNA - Language Models and Knowledge Graphs: A Systems Approach
KLARNA -  Language Models and Knowledge Graphs: A Systems ApproachKLARNA -  Language Models and Knowledge Graphs: A Systems Approach
KLARNA - Language Models and Knowledge Graphs: A Systems ApproachNeo4j
 
Reinforcement Learning – a Rewards Based Approach to Machine Learning - Marko...
Reinforcement Learning – a Rewards Based Approach to Machine Learning - Marko...Reinforcement Learning – a Rewards Based Approach to Machine Learning - Marko...
Reinforcement Learning – a Rewards Based Approach to Machine Learning - Marko...Marko Lohert
 
A Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data MigrationA Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data MigrationHelp Desk Migration
 
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024SimonedeGijt
 
Weeding your micro service landscape.pdf
Weeding your micro service landscape.pdfWeeding your micro service landscape.pdf
Weeding your micro service landscape.pdftimtebeek1
 
Community is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea GouletCommunity is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea GouletAndrea Goulet
 
Microsoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdfMicrosoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdfMarkus Moeller
 
Sourcing Success - How to Find a Clothing Manufacturer
Sourcing Success - How to Find a Clothing ManufacturerSourcing Success - How to Find a Clothing Manufacturer
Sourcing Success - How to Find a Clothing ManufacturerWave PLM
 
Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Soroosh Khodami
 
OpenChain Webinar: AboutCode and Beyond - End-to-End SCA
OpenChain Webinar: AboutCode and Beyond - End-to-End SCAOpenChain Webinar: AboutCode and Beyond - End-to-End SCA
OpenChain Webinar: AboutCode and Beyond - End-to-End SCAShane Coughlan
 

Recently uploaded (20)

Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024
 
Crafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM IntegrationCrafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM Integration
 
The Impact of PLM Software on Fashion Production
The Impact of PLM Software on Fashion ProductionThe Impact of PLM Software on Fashion Production
The Impact of PLM Software on Fashion Production
 
Optimizing Operations by Aligning Resources with Strategic Objectives Using O...
Optimizing Operations by Aligning Resources with Strategic Objectives Using O...Optimizing Operations by Aligning Resources with Strategic Objectives Using O...
Optimizing Operations by Aligning Resources with Strategic Objectives Using O...
 
architecting-ai-in-the-enterprise-apis-and-applications.pdf
architecting-ai-in-the-enterprise-apis-and-applications.pdfarchitecting-ai-in-the-enterprise-apis-and-applications.pdf
architecting-ai-in-the-enterprise-apis-and-applications.pdf
 
JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)
 
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdfStrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
 
Modern binary build systems - PyCon 2024
Modern binary build systems - PyCon 2024Modern binary build systems - PyCon 2024
Modern binary build systems - PyCon 2024
 
KLARNA - Language Models and Knowledge Graphs: A Systems Approach
KLARNA -  Language Models and Knowledge Graphs: A Systems ApproachKLARNA -  Language Models and Knowledge Graphs: A Systems Approach
KLARNA - Language Models and Knowledge Graphs: A Systems Approach
 
Reinforcement Learning – a Rewards Based Approach to Machine Learning - Marko...
Reinforcement Learning – a Rewards Based Approach to Machine Learning - Marko...Reinforcement Learning – a Rewards Based Approach to Machine Learning - Marko...
Reinforcement Learning – a Rewards Based Approach to Machine Learning - Marko...
 
A Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data MigrationA Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data Migration
 
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
 
Weeding your micro service landscape.pdf
Weeding your micro service landscape.pdfWeeding your micro service landscape.pdf
Weeding your micro service landscape.pdf
 
Community is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea GouletCommunity is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea Goulet
 
Microsoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdfMicrosoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdf
 
Sourcing Success - How to Find a Clothing Manufacturer
Sourcing Success - How to Find a Clothing ManufacturerSourcing Success - How to Find a Clothing Manufacturer
Sourcing Success - How to Find a Clothing Manufacturer
 
Top Mobile App Development Companies 2024
Top Mobile App Development Companies 2024Top Mobile App Development Companies 2024
Top Mobile App Development Companies 2024
 
Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024
 
OpenChain Webinar: AboutCode and Beyond - End-to-End SCA
OpenChain Webinar: AboutCode and Beyond - End-to-End SCAOpenChain Webinar: AboutCode and Beyond - End-to-End SCA
OpenChain Webinar: AboutCode and Beyond - End-to-End SCA
 
AI Hackathon.pptx
AI                        Hackathon.pptxAI                        Hackathon.pptx
AI Hackathon.pptx
 

Scientific Software: Sustainability, Skills & Sociology

  • 1. Scientific Software: sustainability, skills & sociology Neil Chue Hong, N.ChueHong@software.ac.uk Director, Software Sustainability Institute US/IAEA Workshop on Software Sustainability for Safeguards Instrumentation, Vienna Institute Software Sustainability www.software.ac.uk
  • 2. The Software Sustainability Institute A national facility for cultivating world- class research through software • Better software enables better research • Software reaches boundaries in its development cycle that prevent improvement, growth and adoption • Providing the expertise and services needed to negotiate to the next stage • Developing the policy and tools to support the community developing and using research software Supported by EPSRC Grant EP/H043160/1 Institute Software Sustainability www.software.ac.uk
  • 3. Anatomy of my talk Institute Software Sustainability www.software.ac.uk SOFTWAREis… …areIMPORTANT everywhere hard to define long-lived context reasons people
  • 4. Software is everywhere (even where you expect it) Institute Software Sustainability www.software.ac.uk
  • 5.
  • 7. Tamiflu binding to mutant influenza A water-swap reaction coordinate for the calculation of absolute protein-ligand binding free energies Woods CJ, Malaisree M, Hannongbua S, Mulholland AJ J. Chem. Phys. (2011) vol. 134, pp. 054114 http://dx.doi.org/10.1063/1.3519057
  • 8. Favouring of disease risk alleles Selection at pleiotropic loci underlies disease co-occurrence in human populations. Navarro, Haley, Karosas et al. Submitted to Nature Genetics
  • 9. Behind every great piece of science… #go through each SNP of interest for(my $x = 0; $x < scalar @pos; $x++) { #and then each downstream SNP of interest for(my $y = $x+1; $y < scalar @pos; $y++) { #if SNPs within our chosen distance (500kb) and both present in the haplotypes file if((!($trait[$x] eq $trait[$y])) && (abs($pos[$x] - $pos[$y]) <= 500000) && (exists($legArr { my $snp1ArrayPos = "”; my $snp2ArrayPos = "”; my $snp1All = "”; my $snp2All = "”; #create output file for this SNP pair my $filename = "ConditionedResults2/$chr[$x].$pos[$x]-$pos[$y].EHH.GBR.2.txt”; print "$filenamen”; unless (-e $filename) { open(OUT, ">$filename"); #####################CHANGE THESE IF NOT FOCUSING ON SECOND SNP#################### my $start = $pos[$y]-500000; if ($start < 1) { $start = 1; } my $end = $pos[$y]+500000; if ($end > $chrLengths{$chr[$x]}) { $end = $chrLengths{$chr[$x]}; }
  • 10. Software is long-lived (and outlasts computational hardware) Institute Software Sustainability www.software.ac.uk
  • 11. Architectural Dominance Institute Software Sustainability www.software.ac.uk Image courtesy PDES Inc Slide from Sean Barker, BAE SYSTEMS, DPC Designed to Last
  • 12. Computational Chemistry - CASTEP From the first implementation of a DFT algorithm to a completely new code to community supported software • Individual • Group • Consortium • W/ industry • Community • Active Software advances < hardware speedup 13http://www.castep.org/ Institute Software Sustainability www.software.ac.uk
  • 13. LOTAR: storing aeronautical models Life of CAD System: 10 years Time between CAD Versions: 6 months Life of Product: 70 years + time Production CAD Obsolete CAD Forgotten Services Legal Liability Modifications 10 years 20 30 40 50 60 Spares Image courtesy PDES Inc Slide from Sean Barker, BAE SYSTEMS, DPC Designed to Last Institute Software Sustainability www.software.ac.uk
  • 14. So we have to maintain it… • “The modification of a software product after delivery to correct faults, to improve performance or other attributes, or to adapt the product to a modified environment” – IEEE defn. – Corrective maintenance: fixing faults – Adaptive maintenance: adapting to changes in environment – Perfective maintenance: meeting new/different user requirements – Preventative maintenance: increasing maintainability Institute Software Sustainability www.software.ac.uk
  • 15. … because we cannot change this with process and practice alone … • “Many of us have tried to discover ways to prevent code from becoming legacy. But … prevention is imperfect. Even the most disciplined development team, knowing the best principles, using the best patterns, and following the best practices will create messes from time to time. The rot still accumulates. It’s not enough to prevent the rot – you have to be able to reverse it.” Institute Software Sustainability www.software.ac.uk
  • 16. … so we work with what we have • Identify change points • Find test points • Break dependencies • Write tests • Make changes and refactor Testing, infrastructure, documentation are key Institute Software Sustainability www.software.ac.uk
  • 17. Software is hard to define (and thus hard to sustain) Institute Software Sustainability www.software.ac.uk
  • 18. What do we sustain: - Workflow? - Software that runs workflow? - Software referenced by workflow?
  • 19. Novel reuse of public sector data http://www.mysociety.org What do we sustain: - Map? - Software that creates map?
  • 20. Sustaining Function or Form 21 What do we sustain: - Function? - Form?
  • 21. Context is important (otherwise all you have is an object) Institute Software Sustainability www.software.ac.uk
  • 22. Comb badge, Museum of London • Without context, objects have no meaning What’s this item? 32x28mm, lead alloy, late Medieval 14-15th century
  • 23. What about repositories? re⋅pos⋅i⋅tor⋅y /noun/ [ri-poz-i-tawr-ee] • 1. a receptacle or place where things are deposited, stored, or offered for sale. • 2. a burial place; sepulchre. Institute Software Sustainability www.software.ac.uk
  • 24. The Zombie Effect • Software not always fully alive when you reanimate it! • Complex set of dependencies – Significant Properties of Software – Purposes and benefits of software preservation http://www.jisc.ac.uk/media/documents/ programmes/preservation/significantprop ertiesofsoftware-final.doc http://softwarepreservation.jiscinvolve.org/wp/
  • 25. Reasons are important (so you take the right approach) Institute Software Sustainability www.software.ac.uk
  • 26. Why are you considering software sustainability? Achieve legal compliance Create heritage value Enable continued access to data and services Encourage software reuse Purpose Institute Software Sustainability www.software.ac.uk
  • 27. How are you going to choose the right approach? Preservation (techno-centric) Emulation (data-centric) Migration (functionality-centric) Transition (process-centric) Hibernation (knowledge-centric) Approach Institute Software Sustainability www.software.ac.uk
  • 28. Preservation vs sustainability Image courtesy of RGB Kew – not for reuse Image courtesy of London Permaculture under CC-by-nc-sa license Preservation? Sustainability? Institute Software Sustainability www.software.ac.uk
  • 29. People are important (people are infrastructure too) Institute Software Sustainability www.software.ac.uk
  • 30. Sustainable Communities • Cohesion and Identity: Creating a community • Tolerance and Diversity: Smart growth through collaboration • Efficient use of resources: Leveraging infrastructure • Adaptability to change: Governing sustainably Institute Software Sustainability www.software.ac.uk
  • 31. Cultivate Contributors – R project • Basics: Website, mailing list, code repository, issue resolution • Remove barriers to participation, increase efficiency • 1993: First public release; 2 devs • 1995: Code open sourced; 3 devs • 1996: r-testers list set up • 1997: lists split: r-announce, r-help, r-devel; public CVS; 11 devs • 2000: CRAN split and mirror • 2001: BioConductor • 2003: Namespaces • 2005: I8n, L8n • 2007: R-Forge • Today: BioConductor (33 core devs), R-Forge (532 projects, 1562 devs), CRAN (1400+ packages) 34 http://cran.r-project.org/doc/html/interface98-paper/paper_2.html Institute Software Sustainability www.software.ac.uk
  • 32. We under-appreciate training • Basic training for kitchen chef: 3-4 years • Head chef: 10 years • Basic training for s/w engineer: 3-4 years • Architect: 10 years PhotobyZagatBuzz • Training in S/W Dev in UG Physics: 140 hours • Training in S/W Dev in UG Geography: 0 hours Institute Software Sustainability www.software.ac.uk
  • 33. Software Carpentry • Lab skills for scientific computing – http://software-carpentry.org – International initiative to teach basics of software engineering to researchers • The “why” more than the “how” – We ran 13 workshops in 2013 to 600+ learners
  • 34. Incentives are important Institute Software Sustainability www.software.ac.uk Courtesy of James Howison and James Herbsleb Incentives and Integration In Scientific Software Production Rewrite by original team: address fragility Fork to add specific functionality Maintained separately Optimised for hardware Facilitate hardware sales Exploit new techniques / architectures
  • 35. And money isn’t everything Institute Software Sustainability www.software.ac.uk Funding/Staffing Time Next expt. running Experiment Running Analysis of Data New experiment design starts Maintenance of software to process data from physics experiment
  • 36. So beware your bus factor Institute Software Sustainability www.software.ac.uk
  • 37. Summary of my talk Institute Software Sustainability www.software.ac.uk SOFTWAREis… …areIMPORTANT everywhere hard to define long-lived context reasons people
  • 38. Take home messages Institute Software Sustainability www.software.ac.uk No-one sets out to write unsustainable software Software sustainability is important because it has to happen People need the skills and incentives to maintain software through its lifetime
  • 39. Work with us – www.software.ac.uk Institute Software Sustainability www.software.ac.uk