1. Finding the right wheel when
you don't want to reinvent it
Michael Hucka Matthew Graham
California Institute of Technology
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. 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. “In general, how important are the following
characteristics when you are searching for
ready-to-run software for a task?”
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. 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. 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 ✮