seven deadly sins against research software sustainability
TRANSCRIPT
New Zealand eScience
Infrastructure
Seven Deadly Sins against
Research Software SustainabilityAleksandra Pawlik, NeSI
CRI Coding Conference, 2-3rd August 2016, Auckland
New Zealand eScience
Infrastructure
Inspiration
Carole Goble, Professor of Computer Science at the Manchester University, UK
and her keynote talk at Bioinformatics Open Source Conference (BOSC) in Vienna, July 2007
Seven Deadly Sins of Bioinformaticshttp://www.slideshare.net/dullhunk/the-seven-deadly-sins-of-bioinformatics
The traditional sins (according to Wikipedia):
• Lust
• Gluttony
• Greed
• Sloth
• Wrath
• Envy
• Pride
New Zealand eScience
Infrastructure
Methodology
1. Email research software project leaders, champions, PIs, and research software engineers
2. Stand well back
3. Collect
4. Merge
5. Examine your
conscience
6. Pledge
Source https://www.linkedin.com/pulse/git-merge-resolving-git-merge-conflict-code-
branches-gaurav-aggarwal
New Zealand eScience
Infrastructure
Credits
XSEDE - The Extreme Science and Engineering Discovery Environment Champions
Jeff Pummill
University of ArkansasJames McClure
Virginia Tech
Ketan Maheshwari
University of Pittsburgh
Tim Middelkoop
University of Missouri
Shantenu Jha
Rutgers University
Carole Goble
Professor of Computer Science
CBE FREng FBCS, CITP
University of Manchester
PI on many research software projects
Dana Brunson
Assistant Vice President for Research
Cyberinfrastructure;
Director, High Performance Computing
Center,
Oklahoma State University
Katy Huff
Assistant Professor in the Department of Nuclear, Plasma, and
Radiological Engineering
University of Illinois at Urbana-Champaign
Neil Chue Hong
Director of the Software
Sustainability Institute
University of Edinburgh
Jason Williams
Assistant Director, External
Collaborations
Cold Spring Harbor
Laboratory, DNALC
New Zealand eScience
Infrastructure
• “Code which has paths hard coded, or installation “scripts” that depend on very specific systems”
• “Excess number of difficult to manage dependencies”
• “Bundling dependencies, creating an environment full of land mines as applications pick up the wrong version”
• “Thinking 'no one will ever use this' (only to discover that suddenly everyone is)”
Sin #1 Non-portability
New Zealand eScience
Infrastructure
• “The only copy of the source in the world is on a 6 year old laptop running Windows XP in safe mode.”
• “Code is in 27 different locations none of which is the same and all have been "modified" in the last month.”
• “Camera shy: code is rarely made available to others to review and run, development is done in secret, versions only made public when "ready"
“Just stick it on GitHub and it will be sustained.”
Sin #2 Inaccessibility
New Zealand eScience
Infrastructure
• “Not paying for sustainability or software”
• “There are no free kittens”
• “Failure to give recognition to developers and engineers”
Sin #3 Greed
New Zealand eScience
Infrastructure
• “Moving away from simplicity / attempting to solve too many problems.”
• “Thinking that every algorithm/function needs to be fully generalized (forgetting that common simple things should remain simple).”
• “Insisting a 7.25% speedup on a code that runs 0.25 seconds matters”
Sin #4 Gluttony
New Zealand eScience
Infrastructure
• “Geek code: the software has been written so that even a researcher who has a good knowledge of programming is unable to understand what's going on”
• “Incompatible: the software is not easy to integrate into existing workflows, or use with common data formats, standards and APIs”
• “Lack of grand vision / big picture / lack of knowledge of the place of software in research”
Sin #5 Obscurity
New Zealand eScience
Infrastructure
• “Low test coverage”
• “Poor documentation. Writing good documentation is hard, and nobody seems to do it perfectly”
• “Relying solely on auto-generated documentation”
• “Lack of training for development community. People with no formal training in computing generally are not capable of writing good code. ”
• “Unlicensed: the software has not made clear how and who can use it”
Sin #6 Laziness
New Zealand eScience
Infrastructure
• “New users and developers are treated with smug know-it-all responses”
• “Disengaged: the software has made no attempt to grow an active community, or gain champions”
Sustainability needs community uptake
Sin #7 Exclusivity and wrath
New Zealand eScience
Infrastructure
• Transparency
• Openness
• Diversity
• Sharing is caring
• Recognition
• Acknowledgment and respect
• Collaboration
Salvation and remission?
New Zealand eScience
Infrastructure
Questions?
Thank you!