finding the right wheel

7
Finding the right wheel when you don't want to reinvent it Michael Hucka Matthew Graham California Institute of Technology

Upload: mike-hucka

Post on 26-Jan-2017

31 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Finding the right wheel

Finding the right wheel when you don't want to reinvent it

Michael Hucka Matthew GrahamCalifornia Institute of Technology

Page 2: Finding the right wheel

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

Page 3: Finding the right wheel

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

Page 4: Finding the right wheel

“In general, how important are the following characteristics when you are searching for

ready-to-run software for a task?”

Page 5: Finding the right wheel

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

Page 6: Finding the right wheel

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

Page 7: Finding the right wheel

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 ✮