You may not know it, but a huge amount of everyday technology is built on open-source software. And at the Turing, we frequently see the benefits of developing and working with open-source software. Here is our guide to why it’s important and how you can contribute – you don’t even need to be a programmer.
What is open-source software?
Software (and its underlying source code) that can be used, modified and redistributed by anyone and everyone is called open source. It is often built collaboratively by a community of contributors, many of whom are volunteers. The Open Source Initiative has put together a comprehensive definition here.
Much of computing today relies on open-source software. In fact, you are probably using some to read this blog post. Many routers, smart home devices and Android smartphones are built on open-source operating systems such as Linux and BSD, while the majority of the internet is powered by Linux and open-source web servers such as Nginx and Apache.
The most popular cryptography techniques, which let us send private messages and access banking online, are open source, as are many of the programming languages, applications and frameworks that drive research across data science and AI.
What are the benefits of open-source software?
Successfully building open-source software takes effort, but we believe that the benefits make it worthwhile. These include:
- Increased security. With many eyes looking at open-source code, bugs and security problems are more likely to be spotted and fixed. The fact that everyone’s work is public also offers an incentive to write elegant code, so that others can easily work with it.
- More resilient projects. Anyone can modify and share open-source code, so the community can adopt or fork a project. This means useful projects don’t end if the original developers move on or if the project is unprofitable. It encourages development to follow the needs of users rather than revenue.
- Collaborative working. Open source fosters a collective approach to problem-solving. Anyone can add a feature or fix a bug and then share their changes back to the original project – this is called an ‘upstream’ contribution because the changes can then flow down to all users. In this way, everyone benefits and solving a problem for one is the same as solving it for all.
What is the Turing’s approach to open source?
The Turing’s tools, practices and systems (TPS) programme is devoted to promoting and developing ethical, reproducible and trustworthy data science and AI through open-source methods. Openness is key to meeting challenges in these fields while ensuring that the outcomes are fair and accessible to all, so open-source principles are applied holistically across all aspects of TPS work.
The programme has supported widely-used frameworks for machine learning in the Julia programming language and machine learning with time series, and is also a major force behind The Turing Way – an open-source handbook for collaborative, reproducible and ethical data science with over 490 contributors.
Elsewhere at the Turing, our Research Engineering Group (REG) – a team of data scientists, software engineers and infrastructure engineers who work on academic teams across research themes – is also dedicated to open-source methods.
When creating tools for research projects, it is rare to start from scratch. Instead, the REG team builds on previous work by using, extending and coordinating open-source software. The research outputs are then themselves shared under open licenses, letting others benefit from the work.
REG members have made large, upstream contributions to significant projects, including adding the Multi-Level Delayed Acceptance stepper to the popular PyMC package, which is used by thousands of researchers for Bayesian modelling. Other REG members have contributed bug fixes to the popular Python library SqlAlchemy (used to interact with a variety of databases when programming in Python) and the React Data Picker library, which lets developers add a date-picking widget to websites.
You may not have heard of these projects but, because software inherits from the projects it is built on, small improvements in important libraries have enormous impact. SqlAlchemy, for example, is used by over 640,000 other projects, so you may have benefitted from our contributions without even knowing it!
How can you contribute to open-source software?
Getting involved in open-source software doesn’t just mean writing code. Contributions come in a variety of shapes and sizes, the majority of which are geared towards non-technical skills.
These can include writing documentation, providing translations, reporting bugs, requesting features, helping people to use the software, providing financial support, and promoting projects. All of these skills are just as important as programming.
Hopefully this piece has inspired you to consider contributing. Here are some ideas and initiatives to get you started:
- Crowdin: find projects where you can contribute translations (not all open source).
- Canonical Open Documentation Academy: mentorship and advice for contributing to open-source software documentation.
- The Turing Way: open guide to data science that values contributors from all backgrounds and runs events to support new contributors.
- Hacktoberfest: annual event where open-source projects support contributors and contributors get rewards.
- Good First Issue: curates open-source software issues that are suitable for first-time contributors.
- Join the Slack / Discord / Matrix / XMPP / Discourse community of your favourite open-source project. These channels are where a lot of the discussion and collaboration happen.
- Open issues on the bug tracker of your favourite projects, e.g. on GitHub, GitLab or Jira. Making good bug reports and helping developers test fixes is very valuable.
- Share your favourite open-source projects with friends, family and followers on social media.
- Support and follow campaigns for open source like those run by the Software Freedom Conservancy, the Open Source Initiative, the Linux Foundation and the Free Software Foundation Europe.
- Donate to projects that you value, either directly or through platforms like Liberapay or Open Source Collective.
Top image: Jane / Adobe Stock