ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
New Zealand eScience
Infrastructure
Seven Deadly Sins against
Research Software Sustainability
Aleksandra 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 Bioinformatics
http://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 Arkansas
James 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!

More Related Content

Seven Deadly Sins against Research Software Sustainability

  • 1. New Zealand eScience Infrastructure Seven Deadly Sins against Research Software Sustainability Aleksandra Pawlik, NeSI CRI Coding Conference, 2-3rd August 2016, Auckland
  • 2. 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 Bioinformatics http://www.slideshare.net/dullhunk/the-seven-deadly-sins-of-bioinformatics The traditional sins (according to Wikipedia): ? Lust ? Gluttony ? Greed ? Sloth ? Wrath ? Envy ? Pride
  • 3. 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
  • 4. New Zealand eScience Infrastructure Credits XSEDE - The Extreme Science and Engineering Discovery Environment Champions Jeff Pummill University of Arkansas James 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
  • 5. 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
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. 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
  • 11. 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
  • 12. New Zealand eScience Infrastructure ? Transparency ? Openness ? Diversity ? Sharing is caring ? Recognition ? Acknowledgment and respect ? Collaboration Salvation and remission?