finding the right wheel
TRANSCRIPT
Finding the right wheel when you don't want to reinvent it
Michael Hucka Matthew GrahamCalifornia Institute of Technology
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
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
“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 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
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
Use this to improve chances your software gets reused
Make it easy for people to discover info about what they want to know
Address basic concerns about the software
Characteristic Make prominent in docs Follow good practicesFeatures 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 ✮