SlideShare a Scribd company logo
Fundamentals of Software Sustainability
Daniel S. Katz
(http://danielskatz.org, @danielskatz)
What is sustainability?
What is sustainability?
• Most often used in the context of ecology, often specifically in the
relationship between humans and the planet
• Example: Karl-Henrik Robèrt (via Wikipedia & paraphrased)
• Natural processes are cyclical but we process resources linearly
• We use up resources, resulting in waste
• Waste doesn’t find its way back into natural cycles; not reused or
reassimilated
• Call for "life-styles and forms of societal organization based on cyclic
processes compatible with the Earth's natural cycles"
Software sustainability
Software sustainability for whom?
• Users
• Funders
• Managers
• Developers (Maintainers)
Software sustainability for users
• The capacity of the software to endure
• Will the software will continue to be available in the future, on
new platforms, meeting new needs?
• Really:
• Shopping
• With elements of
• Longevity
• Robustness
• Support
Software sustainability for funders
• My definition while an NSF program officer:
• “If I give you funds for this now, how will you keep this going after
these funds run out?”
• “… without coming back to me for more funds”
• Really
• Portfolio management
Software sustainability for managers
• Focused on people, not software
• How do I keep my team going?
• Really:
• Business
• Capitalism
• Entrepreneurship
Software sustainability for developers
• Often focused on resources, not software
• How do I get the resources needed to keep my software alive and up-to-
date?
• And keep myself supported / employed?
• Counterpart
• How do I make keeping my software alive and up-to-date use less
resources?
• Really
• Entrepreneurship
• Community building
• Software engineering
Software collapse1
• Software stops working eventually if is not actively maintained
• Structure of computational science software stacks:
1. Project-specific software (developed by researchers): software to do a computation using
building blocks from the lower levels: scripts, workflows, computational notebooks, small
special-purpose libraries & utilities
2. Discipline-specific software (developed by developers & researchers): tools & libraries that
implement disciplinary models & methods
3. Scientific infrastructure (developed by developers): libraries & utilities used for research in
many disciplines
4. Non-scientific infrastructure (developed by developers): operating systems, compilers, and
support code for I/O, user interfaces, etc.
• Software builds & depends on software in all layers below it; any change below
may cause collapse
1http://blog.khinsen.net/posts/2017/01/13/sustainable-software-and-reproducible-research-dealing-with-software-collapse/
Software collapse1
• Options similar for house owners facing the risk of earthquakes:
1. Accept that your house or software is short-lived; in case of collapse, start from
scratch
2. Whenever shaking foundations cause damage, do repair work before more serious
collapse happens
3. Make your house or software robust against perturbations from below
4. Choose stable foundations
• Very short term projects might do 1 (code and throw away)
• Most active projects choose 2 (sustainability work)
• We don’t know how to do 3 (CS research needed, maybe new thinking)
• 4 is expensive & limits innovation in top layers (banks, military, NASA)
1http://blog.khinsen.net/posts/2017/01/13/sustainable-software-and-reproducible-research-dealing-with-software-collapse/
Common elements
• Due to software collapse, bugs, new use cases, there are lots of
risks to all parties
• Users want to make good product choices that pay off in discoveries
• Funders want to make good investments that pay off in discoveries
• Managers want to keep staff employed, also create discoveries
• Developers want their software to be used in discoveries (and want a
career)
• (Almost) all want to know, will this software work in the future?
• What’s the risk?
• And how do developers get recognized?
Back to sustainability, in the context of software
• Elinor Ostrom’s (Governing the Commons) definition of sustainability for a common-pool
resource (CPR): “As long as the average rate of withdrawal does not exceed the average
rate of replenishment, a renewable resource is sustained over time.”
• Notion of a cyclic property, though cycle period not specified
• But rate of what?
• Titus Brown1: “the common pool resource in open online projects is effort”
• Sustainability of effort may be appropriate for the developer
• For effort to be available, need link to recognition, reward, position
• Sustainability of software may be appropriate for the user and funder
• Rate of what?
• Sustainability of funding may be appropriate for the manager
• Also helps developers
• Rate of funding?
1A framework for thinking about Open Source Sustainability? http://ivory.idyll.org/blog/2018-oss-framework-cpr.html
“Equations” of software sustainability
• Software sustainability ≡ sufficient ∆ software state
• Sufficient to deal with: software collapse, bugs, new features needed
• ∆ software state = (human effort in – human effort out - friction) * efficiency
• Software stops being sustained when
human effort out > human effort in
over some time
• Human effort ⇆ $
• All human effort works (community open source)
• All $ (salary) works (commercial software, grant funded projects)
• Combined is hard, equation is not completely true,
humans are not purely rational
• ∆ software state → users choose to volunteer effort or $
• Development choices might take this into account
Debt: The First 5,000 Years
by David Graeber
?
Software sustainability and time
• Software sustainability is a measure of a dynamic, (unpredictable), time domain system
• Back to risk…
• Software sustainability is a prediction – it can’t be known with certainty
• Software sustainability can only be measured looking backward
• How do we know that software is no longer sustainable / has stopped being sustained?
• It no longer works at all? (continuous integration fails)
• It’s not being actively maintained? (no commit in the last x months)
• It’s not being actively developed? (no non-bug fix commit in the last x months)
• What do we do for similar measures in other fields?
• Guess (aka estimate)
• Based on past performance
• E.g., Project cost
• Research is needed
Summary
• Software sustainability means different things to different groups of people
• Persistence of working software
• Persistence of people (or funding)
• Can define sustainability as
• Inflow of resources is sufficient to do the needed work
• Those resources can be turned into human effort
• In all cases, sustainability is not possible to measure in advance
• Can only measure looking backward
• Looking forward, can only predict
Acknowledgements
• Discussions with Neil Chue Hong and the UK SSI
• Discussions at various WSSSPE workshops
• Keynote by James Howison at RSE2018
• Discussions with Rob Haines and Caroline Jay at U. Manchester
• Feedback from Matt Turk, James Howison, Dan Sholler
• D. S. Katz, “Scientific Software Challenges and Community Responses,” 2015. https://www.slideshare.net/danielskatz/scientific-
software-challenges-and-community-responses
• C. C. Venters, C. Jay, L. Lau, M. K. Griffiths, V. Holmes, R. R. Ward, J. Austin, C. E. Dibsdale, J. Xu, “Software Sustainability: The
Modern Tower of Babel,” Proceedings of Third International Workshop on Requirements Engineering for Sustainable Systems
(RE4SuSy 2014), Karlskrona, Sweden. http://ceur-ws.org/Vol-1216/paper2.pdf
• C. Becker, R. Chitchyan, L. Duboc, S. Easterbrook, B. Penzenstadler, N. Seyff, C. C. Venters, “Sustainability design and software:
The Karlskrona manifesto,” 37th International Conference on Software Engineering (ICSE’15), 2015.
https://doi.org/10.1109/ICSE.2015.179
• P. Johnston, M. Everard, D. Santillo, and K.-H. Robèrt, “Reclaiming the Definition of Sustainability,” Environmental Science and
Pollution Research, v.14(1), pp. 60-66, 2007. https://doi.org/10.1065/espr2007.01.375
Fundamentals of software sustainability

More Related Content

Similar to Fundamentals of software sustainability

Agile Software Development.ppt
Agile Software Development.pptAgile Software Development.ppt
Agile Software Development.ppt
abdulwehab2
 
Agile software development
Agile software developmentAgile software development
Agile software developmentHemangi Talele
 
Software Ecosystems = Big Data
Software Ecosystems = Big DataSoftware Ecosystems = Big Data
Software Ecosystems = Big Data
Tom Mens
 
Research Software Sustainability: WSSSPE & URSSI
Research Software Sustainability: WSSSPE & URSSIResearch Software Sustainability: WSSSPE & URSSI
Research Software Sustainability: WSSSPE & URSSI
Daniel S. Katz
 
A Method to Select e-Infrastructure Components to Sustain
A Method to Select e-Infrastructure Components to SustainA Method to Select e-Infrastructure Components to Sustain
A Method to Select e-Infrastructure Components to Sustain
Daniel S. Katz
 
POWRR Tools: Lessons learned from an IMLS National Leadership Grant
POWRR Tools: Lessons learned from an IMLS National Leadership GrantPOWRR Tools: Lessons learned from an IMLS National Leadership Grant
POWRR Tools: Lessons learned from an IMLS National Leadership Grant
Lynne Thomas
 
DevOps Beyond the Buzzwords: Culture, Tools, & Straight Talk
DevOps Beyond the Buzzwords: Culture, Tools, & Straight TalkDevOps Beyond the Buzzwords: Culture, Tools, & Straight Talk
DevOps Beyond the Buzzwords: Culture, Tools, & Straight Talk
Mark Heckler
 
Intoduction to software engineering part 1
Intoduction to software engineering part 1Intoduction to software engineering part 1
Intoduction to software engineering part 1
Rupesh Vaishnav
 
URSSI
URSSIURSSI
Scientific Software Challenges and Community Responses
Scientific Software Challenges and Community ResponsesScientific Software Challenges and Community Responses
Scientific Software Challenges and Community Responses
Daniel S. Katz
 
1. introducción a la Ingeniería de Software (UTM 2071)
1. introducción a la Ingeniería de Software (UTM 2071)1. introducción a la Ingeniería de Software (UTM 2071)
1. introducción a la Ingeniería de Software (UTM 2071)
Mario A Moreno Rocha
 
WSSSPE: Building communities
WSSSPE: Building communitiesWSSSPE: Building communities
WSSSPE: Building communities
Karen Cranston
 
User Interface Design: Definitions, Processes and Principles
User Interface Design: Definitions, Processes and PrinciplesUser Interface Design: Definitions, Processes and Principles
User Interface Design: Definitions, Processes and Principles
MoodLabs
 
Providing Services to our Remote Users: Open Source Solutions
Providing Services to our Remote Users: Open Source SolutionsProviding Services to our Remote Users: Open Source Solutions
Providing Services to our Remote Users: Open Source Solutions
Nicole C. Engard
 
2013 Velocity DevOps Metrics -- It's Not Just For WebOps Any More!
2013 Velocity DevOps Metrics -- It's Not Just For WebOps Any More!2013 Velocity DevOps Metrics -- It's Not Just For WebOps Any More!
2013 Velocity DevOps Metrics -- It's Not Just For WebOps Any More!
Gene Kim
 
How to sustain a tool building community-driven effort
How to sustain a tool building community-driven effortHow to sustain a tool building community-driven effort
How to sustain a tool building community-driven effort
Jordi Cabot
 
Scientific software sustainability and ecosystem complexity
Scientific software sustainability and ecosystem complexityScientific software sustainability and ecosystem complexity
Scientific software sustainability and ecosystem complexityJames Howison
 
Open source for Libraries
Open source for LibrariesOpen source for Libraries
Open source for Libraries
Nicole Baratta
 
User interface design: definitions, processes and principles
User interface design: definitions, processes and principlesUser interface design: definitions, processes and principles
User interface design: definitions, processes and principlesDavid Little
 
Humane assessment on cards
Humane assessment on cardsHumane assessment on cards
Humane assessment on cards
Tudor Girba
 

Similar to Fundamentals of software sustainability (20)

Agile Software Development.ppt
Agile Software Development.pptAgile Software Development.ppt
Agile Software Development.ppt
 
Agile software development
Agile software developmentAgile software development
Agile software development
 
Software Ecosystems = Big Data
Software Ecosystems = Big DataSoftware Ecosystems = Big Data
Software Ecosystems = Big Data
 
Research Software Sustainability: WSSSPE & URSSI
Research Software Sustainability: WSSSPE & URSSIResearch Software Sustainability: WSSSPE & URSSI
Research Software Sustainability: WSSSPE & URSSI
 
A Method to Select e-Infrastructure Components to Sustain
A Method to Select e-Infrastructure Components to SustainA Method to Select e-Infrastructure Components to Sustain
A Method to Select e-Infrastructure Components to Sustain
 
POWRR Tools: Lessons learned from an IMLS National Leadership Grant
POWRR Tools: Lessons learned from an IMLS National Leadership GrantPOWRR Tools: Lessons learned from an IMLS National Leadership Grant
POWRR Tools: Lessons learned from an IMLS National Leadership Grant
 
DevOps Beyond the Buzzwords: Culture, Tools, & Straight Talk
DevOps Beyond the Buzzwords: Culture, Tools, & Straight TalkDevOps Beyond the Buzzwords: Culture, Tools, & Straight Talk
DevOps Beyond the Buzzwords: Culture, Tools, & Straight Talk
 
Intoduction to software engineering part 1
Intoduction to software engineering part 1Intoduction to software engineering part 1
Intoduction to software engineering part 1
 
URSSI
URSSIURSSI
URSSI
 
Scientific Software Challenges and Community Responses
Scientific Software Challenges and Community ResponsesScientific Software Challenges and Community Responses
Scientific Software Challenges and Community Responses
 
1. introducción a la Ingeniería de Software (UTM 2071)
1. introducción a la Ingeniería de Software (UTM 2071)1. introducción a la Ingeniería de Software (UTM 2071)
1. introducción a la Ingeniería de Software (UTM 2071)
 
WSSSPE: Building communities
WSSSPE: Building communitiesWSSSPE: Building communities
WSSSPE: Building communities
 
User Interface Design: Definitions, Processes and Principles
User Interface Design: Definitions, Processes and PrinciplesUser Interface Design: Definitions, Processes and Principles
User Interface Design: Definitions, Processes and Principles
 
Providing Services to our Remote Users: Open Source Solutions
Providing Services to our Remote Users: Open Source SolutionsProviding Services to our Remote Users: Open Source Solutions
Providing Services to our Remote Users: Open Source Solutions
 
2013 Velocity DevOps Metrics -- It's Not Just For WebOps Any More!
2013 Velocity DevOps Metrics -- It's Not Just For WebOps Any More!2013 Velocity DevOps Metrics -- It's Not Just For WebOps Any More!
2013 Velocity DevOps Metrics -- It's Not Just For WebOps Any More!
 
How to sustain a tool building community-driven effort
How to sustain a tool building community-driven effortHow to sustain a tool building community-driven effort
How to sustain a tool building community-driven effort
 
Scientific software sustainability and ecosystem complexity
Scientific software sustainability and ecosystem complexityScientific software sustainability and ecosystem complexity
Scientific software sustainability and ecosystem complexity
 
Open source for Libraries
Open source for LibrariesOpen source for Libraries
Open source for Libraries
 
User interface design: definitions, processes and principles
User interface design: definitions, processes and principlesUser interface design: definitions, processes and principles
User interface design: definitions, processes and principles
 
Humane assessment on cards
Humane assessment on cardsHumane assessment on cards
Humane assessment on cards
 

More from Daniel S. Katz

Software Professionals (RSEs) at NCSA
Software Professionals (RSEs) at NCSASoftware Professionals (RSEs) at NCSA
Software Professionals (RSEs) at NCSA
Daniel S. Katz
 
Parsl: Pervasive Parallel Programming in Python
Parsl: Pervasive Parallel Programming in PythonParsl: Pervasive Parallel Programming in Python
Parsl: Pervasive Parallel Programming in Python
Daniel S. Katz
 
What is eScience, and where does it go from here?
What is eScience, and where does it go from here?What is eScience, and where does it go from here?
What is eScience, and where does it go from here?
Daniel S. Katz
 
Citation and Research Objects: Toward Active Research Objects
Citation and Research Objects: Toward Active Research ObjectsCitation and Research Objects: Toward Active Research Objects
Citation and Research Objects: Toward Active Research Objects
Daniel S. Katz
 
FAIR is not Fair Enough, Particularly for Software Citation, Availability, or...
FAIR is not Fair Enough, Particularly for Software Citation, Availability, or...FAIR is not Fair Enough, Particularly for Software Citation, Availability, or...
FAIR is not Fair Enough, Particularly for Software Citation, Availability, or...
Daniel S. Katz
 
Software Citation in Theory and Practice
Software Citation in Theory and PracticeSoftware Citation in Theory and Practice
Software Citation in Theory and Practice
Daniel S. Katz
 
Software citation
Software citationSoftware citation
Software citation
Daniel S. Katz
 
Expressing and sharing workflows
Expressing and sharing workflowsExpressing and sharing workflows
Expressing and sharing workflows
Daniel S. Katz
 
Citation and reproducibility in software
Citation and reproducibility in softwareCitation and reproducibility in software
Citation and reproducibility in software
Daniel S. Katz
 
Software Citation: Principles, Implementation, and Impact
Software Citation:  Principles, Implementation, and ImpactSoftware Citation:  Principles, Implementation, and Impact
Software Citation: Principles, Implementation, and Impact
Daniel S. Katz
 
Summary of WSSSPE and its working groups
Summary of WSSSPE and its working groupsSummary of WSSSPE and its working groups
Summary of WSSSPE and its working groups
Daniel S. Katz
 
Working towards Sustainable Software for Science: Practice and Experience (WS...
Working towards Sustainable Software for Science: Practice and Experience (WS...Working towards Sustainable Software for Science: Practice and Experience (WS...
Working towards Sustainable Software for Science: Practice and Experience (WS...
Daniel S. Katz
 
20160607 citation4software panel
20160607 citation4software panel20160607 citation4software panel
20160607 citation4software panel
Daniel S. Katz
 
20160607 citation4software opening
20160607 citation4software opening20160607 citation4software opening
20160607 citation4software opening
Daniel S. Katz
 
What do we need beyond a DOI?
What do we need beyond a DOI?What do we need beyond a DOI?
What do we need beyond a DOI?
Daniel S. Katz
 
Looking at Software Sustainability and Productivity Challenges from NSF
Looking at Software Sustainability and Productivity Challenges from NSFLooking at Software Sustainability and Productivity Challenges from NSF
Looking at Software Sustainability and Productivity Challenges from NSF
Daniel S. Katz
 
Scientific research: What Anna Karenina teaches us about useful negative results
Scientific research: What Anna Karenina teaches us about useful negative resultsScientific research: What Anna Karenina teaches us about useful negative results
Scientific research: What Anna Karenina teaches us about useful negative results
Daniel S. Katz
 
Panel: Our Scholarly Recognition System Doesn’t Still Work
Panel: Our Scholarly Recognition System Doesn’t Still WorkPanel: Our Scholarly Recognition System Doesn’t Still Work
Panel: Our Scholarly Recognition System Doesn’t Still Work
Daniel S. Katz
 
US University Research Funding, Peer Reviews, and Metrics
US University Research Funding, Peer Reviews, and MetricsUS University Research Funding, Peer Reviews, and Metrics
US University Research Funding, Peer Reviews, and Metrics
Daniel S. Katz
 
Swift Parallel Scripting for High-Performance Workflow
Swift Parallel Scripting for High-Performance WorkflowSwift Parallel Scripting for High-Performance Workflow
Swift Parallel Scripting for High-Performance Workflow
Daniel S. Katz
 

More from Daniel S. Katz (20)

Software Professionals (RSEs) at NCSA
Software Professionals (RSEs) at NCSASoftware Professionals (RSEs) at NCSA
Software Professionals (RSEs) at NCSA
 
Parsl: Pervasive Parallel Programming in Python
Parsl: Pervasive Parallel Programming in PythonParsl: Pervasive Parallel Programming in Python
Parsl: Pervasive Parallel Programming in Python
 
What is eScience, and where does it go from here?
What is eScience, and where does it go from here?What is eScience, and where does it go from here?
What is eScience, and where does it go from here?
 
Citation and Research Objects: Toward Active Research Objects
Citation and Research Objects: Toward Active Research ObjectsCitation and Research Objects: Toward Active Research Objects
Citation and Research Objects: Toward Active Research Objects
 
FAIR is not Fair Enough, Particularly for Software Citation, Availability, or...
FAIR is not Fair Enough, Particularly for Software Citation, Availability, or...FAIR is not Fair Enough, Particularly for Software Citation, Availability, or...
FAIR is not Fair Enough, Particularly for Software Citation, Availability, or...
 
Software Citation in Theory and Practice
Software Citation in Theory and PracticeSoftware Citation in Theory and Practice
Software Citation in Theory and Practice
 
Software citation
Software citationSoftware citation
Software citation
 
Expressing and sharing workflows
Expressing and sharing workflowsExpressing and sharing workflows
Expressing and sharing workflows
 
Citation and reproducibility in software
Citation and reproducibility in softwareCitation and reproducibility in software
Citation and reproducibility in software
 
Software Citation: Principles, Implementation, and Impact
Software Citation:  Principles, Implementation, and ImpactSoftware Citation:  Principles, Implementation, and Impact
Software Citation: Principles, Implementation, and Impact
 
Summary of WSSSPE and its working groups
Summary of WSSSPE and its working groupsSummary of WSSSPE and its working groups
Summary of WSSSPE and its working groups
 
Working towards Sustainable Software for Science: Practice and Experience (WS...
Working towards Sustainable Software for Science: Practice and Experience (WS...Working towards Sustainable Software for Science: Practice and Experience (WS...
Working towards Sustainable Software for Science: Practice and Experience (WS...
 
20160607 citation4software panel
20160607 citation4software panel20160607 citation4software panel
20160607 citation4software panel
 
20160607 citation4software opening
20160607 citation4software opening20160607 citation4software opening
20160607 citation4software opening
 
What do we need beyond a DOI?
What do we need beyond a DOI?What do we need beyond a DOI?
What do we need beyond a DOI?
 
Looking at Software Sustainability and Productivity Challenges from NSF
Looking at Software Sustainability and Productivity Challenges from NSFLooking at Software Sustainability and Productivity Challenges from NSF
Looking at Software Sustainability and Productivity Challenges from NSF
 
Scientific research: What Anna Karenina teaches us about useful negative results
Scientific research: What Anna Karenina teaches us about useful negative resultsScientific research: What Anna Karenina teaches us about useful negative results
Scientific research: What Anna Karenina teaches us about useful negative results
 
Panel: Our Scholarly Recognition System Doesn’t Still Work
Panel: Our Scholarly Recognition System Doesn’t Still WorkPanel: Our Scholarly Recognition System Doesn’t Still Work
Panel: Our Scholarly Recognition System Doesn’t Still Work
 
US University Research Funding, Peer Reviews, and Metrics
US University Research Funding, Peer Reviews, and MetricsUS University Research Funding, Peer Reviews, and Metrics
US University Research Funding, Peer Reviews, and Metrics
 
Swift Parallel Scripting for High-Performance Workflow
Swift Parallel Scripting for High-Performance WorkflowSwift Parallel Scripting for High-Performance Workflow
Swift Parallel Scripting for High-Performance Workflow
 

Recently uploaded

Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
Rakesh Kumar R
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
TheSMSPoint
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
Ayan Halder
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
Deuglo Infosystem Pvt Ltd
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 

Recently uploaded (20)

Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 

Fundamentals of software sustainability

  • 1. Fundamentals of Software Sustainability Daniel S. Katz (http://danielskatz.org, @danielskatz)
  • 3.
  • 4.
  • 5. What is sustainability? • Most often used in the context of ecology, often specifically in the relationship between humans and the planet • Example: Karl-Henrik Robèrt (via Wikipedia & paraphrased) • Natural processes are cyclical but we process resources linearly • We use up resources, resulting in waste • Waste doesn’t find its way back into natural cycles; not reused or reassimilated • Call for "life-styles and forms of societal organization based on cyclic processes compatible with the Earth's natural cycles"
  • 7. Software sustainability for whom? • Users • Funders • Managers • Developers (Maintainers)
  • 8. Software sustainability for users • The capacity of the software to endure • Will the software will continue to be available in the future, on new platforms, meeting new needs? • Really: • Shopping • With elements of • Longevity • Robustness • Support
  • 9. Software sustainability for funders • My definition while an NSF program officer: • “If I give you funds for this now, how will you keep this going after these funds run out?” • “… without coming back to me for more funds” • Really • Portfolio management
  • 10. Software sustainability for managers • Focused on people, not software • How do I keep my team going? • Really: • Business • Capitalism • Entrepreneurship
  • 11. Software sustainability for developers • Often focused on resources, not software • How do I get the resources needed to keep my software alive and up-to- date? • And keep myself supported / employed? • Counterpart • How do I make keeping my software alive and up-to-date use less resources? • Really • Entrepreneurship • Community building • Software engineering
  • 12. Software collapse1 • Software stops working eventually if is not actively maintained • Structure of computational science software stacks: 1. Project-specific software (developed by researchers): software to do a computation using building blocks from the lower levels: scripts, workflows, computational notebooks, small special-purpose libraries & utilities 2. Discipline-specific software (developed by developers & researchers): tools & libraries that implement disciplinary models & methods 3. Scientific infrastructure (developed by developers): libraries & utilities used for research in many disciplines 4. Non-scientific infrastructure (developed by developers): operating systems, compilers, and support code for I/O, user interfaces, etc. • Software builds & depends on software in all layers below it; any change below may cause collapse 1http://blog.khinsen.net/posts/2017/01/13/sustainable-software-and-reproducible-research-dealing-with-software-collapse/
  • 13. Software collapse1 • Options similar for house owners facing the risk of earthquakes: 1. Accept that your house or software is short-lived; in case of collapse, start from scratch 2. Whenever shaking foundations cause damage, do repair work before more serious collapse happens 3. Make your house or software robust against perturbations from below 4. Choose stable foundations • Very short term projects might do 1 (code and throw away) • Most active projects choose 2 (sustainability work) • We don’t know how to do 3 (CS research needed, maybe new thinking) • 4 is expensive & limits innovation in top layers (banks, military, NASA) 1http://blog.khinsen.net/posts/2017/01/13/sustainable-software-and-reproducible-research-dealing-with-software-collapse/
  • 14. Common elements • Due to software collapse, bugs, new use cases, there are lots of risks to all parties • Users want to make good product choices that pay off in discoveries • Funders want to make good investments that pay off in discoveries • Managers want to keep staff employed, also create discoveries • Developers want their software to be used in discoveries (and want a career) • (Almost) all want to know, will this software work in the future? • What’s the risk? • And how do developers get recognized?
  • 15. Back to sustainability, in the context of software • Elinor Ostrom’s (Governing the Commons) definition of sustainability for a common-pool resource (CPR): “As long as the average rate of withdrawal does not exceed the average rate of replenishment, a renewable resource is sustained over time.” • Notion of a cyclic property, though cycle period not specified • But rate of what? • Titus Brown1: “the common pool resource in open online projects is effort” • Sustainability of effort may be appropriate for the developer • For effort to be available, need link to recognition, reward, position • Sustainability of software may be appropriate for the user and funder • Rate of what? • Sustainability of funding may be appropriate for the manager • Also helps developers • Rate of funding? 1A framework for thinking about Open Source Sustainability? http://ivory.idyll.org/blog/2018-oss-framework-cpr.html
  • 16. “Equations” of software sustainability • Software sustainability ≡ sufficient ∆ software state • Sufficient to deal with: software collapse, bugs, new features needed • ∆ software state = (human effort in – human effort out - friction) * efficiency • Software stops being sustained when human effort out > human effort in over some time • Human effort ⇆ $ • All human effort works (community open source) • All $ (salary) works (commercial software, grant funded projects) • Combined is hard, equation is not completely true, humans are not purely rational • ∆ software state → users choose to volunteer effort or $ • Development choices might take this into account Debt: The First 5,000 Years by David Graeber ?
  • 17. Software sustainability and time • Software sustainability is a measure of a dynamic, (unpredictable), time domain system • Back to risk… • Software sustainability is a prediction – it can’t be known with certainty • Software sustainability can only be measured looking backward • How do we know that software is no longer sustainable / has stopped being sustained? • It no longer works at all? (continuous integration fails) • It’s not being actively maintained? (no commit in the last x months) • It’s not being actively developed? (no non-bug fix commit in the last x months) • What do we do for similar measures in other fields? • Guess (aka estimate) • Based on past performance • E.g., Project cost • Research is needed
  • 18. Summary • Software sustainability means different things to different groups of people • Persistence of working software • Persistence of people (or funding) • Can define sustainability as • Inflow of resources is sufficient to do the needed work • Those resources can be turned into human effort • In all cases, sustainability is not possible to measure in advance • Can only measure looking backward • Looking forward, can only predict
  • 19. Acknowledgements • Discussions with Neil Chue Hong and the UK SSI • Discussions at various WSSSPE workshops • Keynote by James Howison at RSE2018 • Discussions with Rob Haines and Caroline Jay at U. Manchester • Feedback from Matt Turk, James Howison, Dan Sholler • D. S. Katz, “Scientific Software Challenges and Community Responses,” 2015. https://www.slideshare.net/danielskatz/scientific- software-challenges-and-community-responses • C. C. Venters, C. Jay, L. Lau, M. K. Griffiths, V. Holmes, R. R. Ward, J. Austin, C. E. Dibsdale, J. Xu, “Software Sustainability: The Modern Tower of Babel,” Proceedings of Third International Workshop on Requirements Engineering for Sustainable Systems (RE4SuSy 2014), Karlskrona, Sweden. http://ceur-ws.org/Vol-1216/paper2.pdf • C. Becker, R. Chitchyan, L. Duboc, S. Easterbrook, B. Penzenstadler, N. Seyff, C. C. Venters, “Sustainability design and software: The Karlskrona manifesto,” 37th International Conference on Software Engineering (ICSE’15), 2015. https://doi.org/10.1109/ICSE.2015.179 • P. Johnston, M. Everard, D. Santillo, and K.-H. Robèrt, “Reclaiming the Definition of Sustainability,” Environmental Science and Pollution Research, v.14(1), pp. 60-66, 2007. https://doi.org/10.1065/espr2007.01.375