Open source is a software development practice, where the software’s source code1 :
- usually developped by multiple actors, in an open and transparent way
- free and available for all
- can be modified or used for derivative work by anyone
- can be freely distributed
In practice, open source is both a legal framework for collaborative work, and a set of practices.
OSRD and Open Source
Applied to OSRD, Open Source has multiple avantages :
- the algorithms and know-how developped with the project are free for all
- development cost and results are shared between actors
- it makes interoperability between software systems easier by helping make the landscape more homogeneous and standardized
- helps focus collaboration around common interests
- enables actors to tailor the software to their own interests
- enables researchers to contribute and benefit from the project
- it allows public actors to meet their transparency goals
Using open source to enable industrial collaboration is not a new idea:
- Blender is a modelling, rendering and 3D animation software, which has recently become major point of industry collaboration for this industry
- Linux, a Windows alternative used by Google, Microsoft, Amazon, Apple, most websites, cloud platforms, mobile phones, routers, and more. All these companies rely on and contribute to Linux tremendously
- Android is the common base software for most phones. Phone manufacturers regularly contribute to android
- PostgreSQL, MySQL, SQLite and other open source data bases collectively dominate the database market. Any actor with special needs can improve an existing open source tool rather than create a new one.
- Both Firefox and Chrome are Open Source
- Wordpress is the CMS which runs 43% of all websites. A flock of companies contribute to Wordpress and make extensions
- Odoo is a powerful modular ERP, which has a community not unlike Wordpress
All these projects share the common property of being essential to a number of companies, without being part of what these companies sell.
It thus makes sense for these companies to collaborate with peers and competitors to build common tools, which makes exchanges easier and helps improve quality of service for all.
In practice, most open source software is developed using a forge. Through this forge, developers and users can access the source code, report bugs, plan tasks, and integrate new changes to the code. Anyone can suggest a change, report a bug or plan a task.
All changes go through a peer review, not unlike those used by the scientific community. Reviewers are software developers most familiar with components affected by the change.
Changes are integrated into the code base when everyone involved agrees to. Maintainers are responsible for keeping the project working and consistent. Maintainers are choosen among developers by developers. What motivates whether to integrate a change or not is technical viability: the goal of everyone involved is to maintain high level of service and quality standard.
Source code is a set of text documents which describes how a piece of software works. It’s the result of the work of software developers. ↩︎