SlideShare uma empresa Scribd logo
1 de 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

Mais conteúdo relacionado

Semelhante a Scientific Software: Sustainability, Skills & Sociology

Semelhante a 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
 

Mais de 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 View
Neil Chue Hong
 

Mais de 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
 

Último

Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 

Último (20)

Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 

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