Most people think of open source projects having the following features in common:
• Source Code Access
• Process to Submit Code Changes
• Process to Submit Bugs
• Documentation (at varying levels of quality)
• Ownership of Project Trademark
• Public Release Schedule
Of course, there may be other items that are commonly considered features, however, I want to focus on the second bullet; Process to Submit Code Changes. If an open source project has all of the above features except doesn’t accept code changes, is it no longer an open source project?
As an example, I was at a conference several years back when Zimbra was first acquired by Yahoo and the head of Zimbra discussed how about 99.5% of their code was written and maintained by the employees of Zimbra and not the broader community. In fact, Zimbra was not interested in having external parties submit code as their development process was tightly managed and run via internal processes. The source code was publically available to anyone wishing to review or download it. Thus, I consider them an open source project.
Another example is SugarCRM. They currently offer a “community” edition of their solution as well as a “corporate” edition that is purchased by users. Further review shows that the community edition is a subset of the corporate edition; however all the code is open sourced and written directly by SugarCRM employees. The community input for SugarCRM is focused on technology add-ons in their ecosystem solution set and not within the core SugarCRM technology. Thus, I also consider them an open source project.
In both examples, the company maintains control of the core project and is not in the business of asking for development assistance. The software is open sourced however the project is not setup to accept code submissions, as you would see with the Linux kernel, for example. I believe these companies are running another type of open source project and should be categorized as such. However, some people argue that without accepting code from independent sources, these projects are not open source. What are your thoughts?
Stephen Spector is the community manager of the open source OpenStack cloud platform community which develops solutions and technology for public and private cloud infrastructures. He is responsible for all things OpenStack, except for the software itself.
Stephen is an old school C developer for Real-Time embedded systems and a long time alliance and developer program manager longing for the good old days when technology upheavals only occurred every six months. You can follow him on Twitter and the OpenStack blog.