I received an interesting message the other day from a colleague writing about a software development project: “They say they adhere to open-source, but their software is not developed as an open-source project and they do not have a community of developers that contribute.” This caught my eye because I have noticed this as well — open source projects that are not developed in the open.
According to the Wikipedia definition of “open source,” this appears to defy the very definition of open source:
The open-source model includes the concept of concurrent yet different agendas and differing approaches in production, in contrast with more centralized models of development such as those typically used in commercial software companies. A main principle and practice of open-source software development is peer production by bartering and collaboration, with the end-product, source-material, “blueprints”, and documentation available at no cost to the public.
Unfortunately, I think the term “open source” as it has come to be understood through the near-religious zealotry of some advocates has clouded our terminology more than clarified it. “Open source” should mean exactly that and nothing more — the source code of the software is open, thereby allowing others to see it, understand it, and perhaps modify it. How the software itself is developed should be an additional aspect to the terminology, such as “openly developed open source.”
Such a distinction would then make it clear whether the open source software is developed with a “centralized model” or with an open and inclusive development process, where the code is in a revision control system such as Github and others can submit code changes to the trunk.
There may also be yet other aspects of “open source” as it is currently defined that should be separated from the term, to help provide more nuance and clarity. Otherwise we run the risk of assuming too much when someone says “open source”.