Often, OSS is developed in a public, decentralised, collaborative manner between multiple contributors. The purpose of this is to enhance the diversity and scope of a project and its design, in order to become more beneficial and sustainable. Such an approach was famously likened to a ‘bazaar’ model by Eric Raymond, an early OSS proponent. One of the major guiding principles of this is that of peer production, which relies on self-organised communities to regulate the development of content, co-ordinated towards a shared goal or outcome.
OSS projects rely heavily on volunteer collaboration, which often entails a constant flux of newcomers in order to become productive and sustainable (Steinmacher et al., 2014). Creating the right social atmosphere for a project, and a welcoming engagement environment, are often critical to successful collaborations in OSS.
Hopefully now you have come to see the importance of software as a cornerstone of modern science, and the importance that OSS plays in this.
The learning outcomes from this should be:
You will now be able to define the characteristics of OSS, and the ethical, legal, economic and research impact arguments for and against it.
Based on community standards, you will now be able to describe the quality requirements of sharing and re-using open code.
You will now be able to use a range of research tools that utilise OSS.
You will now be able to transform code designed for their personal use into code that is accessible and re-usable by others.
Software developers will be able to make their software citable, and software users will know how to cite the software they use.
However, the Open Source journey does not stop here! This was just the beginning, and there are some incredible resources out there if you would like to do or learn more:
If you feel particularly inspired by this, you can endorse the Science Code Manifesto, which is based on the five principles of code, copyright, citation, credit, and curation.
To launch and develop your own project, the Open Source Guides program offers a range of practical guides and skills to help launch and advance your OSS projects.
For a detailed look at OSS-based research workflows, the Open Science, Open Data, Open Source hand-guide by Pedro L. Fernandes and Rutger A. Vos is one of the top resources online.
More formalised journal venues also exist for software-based articles, including The Journal of Open Research Software and The Journal of Open Source Software. A list of such venues is also available.
The PLOS Open Source Toolkit provides a global forum for Open Source hardware and software research and applications.
The NumFOCUS is a non-profit organization that supports and promotes world-class, innovative, open source scientific software. Some of the projects they sponsor include:
IPython and Jupyter Notebook initiatives.
rOpenSci, which promotes the open source R statistical environment for transparent and reproducible research.
To gain more hands on experience with OSS, the Software Carpentry community holds regular workshops to improve lab-based computing skills (Wilson et al., 2017).
The Future of Research in Free/Open Source Software Development (Scacchi, 2010).
The Scientific Method in Practice: Reproducibility in the Computational Sciences (Stodden, 2010).
The case for open computer programs (Ince et al., 2012).
Code Sharing Is Associated with Research Impact in Image Processing (Vandewalle, 2012).
Current issues and research trends on open-source software communities (Martinez-Torres and Diaz-Fernandez, 2013).
Ten simple rules for reproducible computational research (Sandve et al., 2013).
Practices in source code sharing in astrophysics (Shamir et al., 2013).
A systematic literature review on the barriers faced by newcomers to open source software projects (Steinmacher et al., 2014).
Knowledge sharing in open source software communities: motivations and management (Iskoujina and Roberts, 2015).
An open source pharma roadmap (Balasegaram et al., 2017).
Software citation principles (Smith et al., 2016).
An introduction to Rocker: Docker containers for R (Boettiger and Eddelbuettel, 2017).
Upon the Shoulders of Giants: Open-Source Hardware and Software in Analytical Chemistry (Dryden et al., 2017).
Good enough practices in scientific computing (Wilson et al., 2017).
Four simple recommendations to encourage best practices in research software (Jiménez et al., 2017).
Perspectives on Reproducibility and Sustainability of Open-Source Scientific Software from Seven Years of the Dedalus Project (Oishi et al., 2018).