Finding the right wheel when
you don't want to reinvent it
Michael Hucka Matthew Graham

California Institute of Technology
Common problem: finding software
• Ask Google? 1000’s of results
• Ask colleagues? They may not know
• Read the literature?...
Survey about how people look for software
Invitations via lists for systems biology & astronomy
Total respondents: 69
• Fi...
“In general, how important are the following
characteristics when you are searching for
ready-to-run software for a task?”
Responses: what’s important?
0 10 20 30 40 50 60 70
Size of software
Similarity to other software you used
Software archit...
Responses: what’s important?
0 10 20 30 40 50 60 70
Size of software
Similarity to other software you used
Software archit...
Usethistoimprovechancesyoursoftwaregetsreused
Make it easy for people to discover info about what they want to know
Addres...
Próximos SlideShares
Carregando em…5
×

Finding the right wheel

150 visualizações

Publicada em

Presentation given at AAS 229 during "Perspectives in Research Software" panel on Jan. 6, 2017.

Publicada em: Software
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Finding the right wheel

  1. 1. Finding the right wheel when you don't want to reinvent it Michael Hucka Matthew Graham
 California Institute of Technology
  2. 2. Common problem: finding software • Ask Google? 1000’s of results • Ask colleagues? They may not know • Read the literature? It always lags This impacts software reuse & sustainability • Can’t find it more likely to reinvent it waste $$ and time
  3. 3. Survey about how people look for software Invitations via lists for systems biology & astronomy Total respondents: 69 • Fields: physical sciences, computing, math, bio • 56 software developers, 13 non-devs - Dev experience = 1 yr – 45 yrs (mean 20 yrs) Find report at arXiv:1605.02265
  4. 4. “In general, how important are the following characteristics when you are searching for ready-to-run software for a task?”
  5. 5. Responses: what’s important? 0 10 20 30 40 50 60 70 Size of software Similarity to other software you used Software architecture Quality of support for the software Security provisions Other people’s opinions Programming language(s) used in implementation Reputation of the developers How easy the software is to extend License terms for source code Speed/performance of the software How easy the software is to install Availability of source code Hardware compatibility and requirements Quality of documentation How easy the software is to learn License terms for usage Apparent quality of the software Operating system requirements Price Support for specific data standards and file formats Availability of specific features Essential Usually of above-average importance Average importance Somewhat or occasionally important Rarely or never important Total # responses: 69
  6. 6. Responses: what’s important? 0 10 20 30 40 50 60 70 Size of software Similarity to other software you used Software architecture Quality of support for the software Security provisions Other people’s opinions Programming language(s) used in implementation Reputation of the developers How easy the software is to extend License terms for source code Speed/performance of the software How easy the software is to install Availability of source code Hardware compatibility and requirements Quality of documentation How easy the software is to learn License terms for usage Apparent quality of the software Operating system requirements Price Support for specific data standards and file formats Availability of specific features Essential Usually of above-average importance Average importance Somewhat or occasionally important Rarely or never important Total # responses: 69
  7. 7. Usethistoimprovechancesyoursoftwaregetsreused Make it easy for people to discover info about what they want to know Address basic concerns about the software Characteristic Makeprominentindocs Follow good practices Features offered ✔ Data & file standards supported ✔ Price ✔ Operating system requirements ✔ License ✔ Hardware requirements ✔ Availability of source code ✔ How easy is it to learn? ✔ ✮ Quality of software ✮ Quality of documentation ✮

×