Open Research Software
What is open research software?
We’re mainly talking about open-source software, which fits into the wider open research agenda, including:
- open source code
- open data
- open access publications
In each of these cases, “open” means:
- publicly available
- with an open license, means you are free to:
- use
- share, distribute
- modify
- and typically mean that you must:
- acknowledge
- make any modifications freely available too
Why write and publish open research software?
It’s good practice 21st century science:
New demo: finding stop #hotspots in urban street networkshttps://t.co/CAFeKmZ47O#MovingPandas meets #OSMnx & #PySAL Spaghetti
— Anita Graser (@underdarkGIS) October 11, 2020
Hat tips to @gboeing, @sreyog, @darribas, jGaboardi pic.twitter.com/nKFdGdyLo1
More examples of how Science should be in the XXI Century: get a paper out, add a Github repo w/ all the stuff that went into it. The paper is the sales pitch, the real stuff happens in code! https://t.co/mIHnmuImbH
— Dani Arribas-Bel (@darribas) October 12, 2020
After 2 years in review + 4 sets of revisions for 2 journals, this paper on #openaccess transport models is finally published 🎉
— Robin Lovelace (@robinlovelace) October 14, 2020
Paper (open access): https://t.co/Zm8Qq8uHiV
Case study: https://t.co/xvJ6uAcrVN
Conclusion: publicly funded models should be accessible + open pic.twitter.com/4n9mZ16Zas
Research software is a public good - especially if publicly funded:
research data is a public good produced in the public interest and should be made freely and openly available with as few restrictions as possible in a timely and responsible manner
Potentially enabling better science and policy:
- open data and open code is available for scrutiny
- “many eyes make all bugs shallow”
- leverage point in planning systems (Lovelace et al 2020)
Collaboration and credit:
- get credit, and credit contributors
- avoid reinventing wheels - use open libraries
- enable collaboration - contribute/receive contributions
How to write, publish and maintain open research software
Practical level
Make code citable
Overview of Good-enough practices
- write a README, document the “why”
- make the license explicit
- keep track of changes in version control
- use version numbers to communicate bigger changes
- be ready to deprecate or mark it as “done”