Open Source vs. Closed Source
Consider this a sidebar to my ongoing series on Building a Web Application. A user commented that he thought "it should be an open source effort so [he’s] not going to help." Which was a really intriguing comment because I hadn't said either way whether it would be open source or not.
I certainly understand how the person could have felt the implication of it being closed-source application. I hope to one day make money off this. Don't we all? But wanting to sell it as a service or a product doesn’t necessary mean going closed-source. The two aren't at separate ends of the spectrum.
So, the question is, should I develop this application to be open-source or closed-source?
That user’s comment is definitely case in point. Some people will respect you for keeping a watchful eye on your code (and ultimately, your desire to make money) but go open-source and everybody is on your side.
This is a mild advantage of an open model. People are much more willing to devote their time for the ‘greater good’ of an open-source project. But with thousands of projects already on the go, what will get people excited and involved in your project? I’m certainly not the juggernaut organization like Mozilla but as I get further along in the project, it wouldn’t surprise me if the occasional person wished to contribute to the effort.
The argument goes that an open-source application will ultimately be more secure than a closed-source application because more people can review the code. They keyword here is can. Any project with the same number of people doing code review, whether it’s open or closed, will find approximately the same number of bugs and security issues. Going back to my last point, going open-source could make it easier to find additional resources to make the application more secure.
This is where things get tricky. With closed-source, I can run it as a service or sell it as a product. I can also leverage both and generate sales through support and add-ons, as well. With open-source, I can still go service or product but why would somebody pay for it when they can download and run the application for free? The only business model left is that of support and add-ons.
Ultimately, that may be enough. Various companies are proving that they can build a solid business around just support and add-ons.
A little of this, a little of that
One of the ideas that I’ve been mulling over is a combination of the two. Where the CMS framework would be developed as open-source but the interface and modules that go on top of it would be closed-source. In that way, people can leverage the framework to build CMS’s of their own with functionality and a user interface that could vary wildly from my own. Each could co-exist or compete within the market.
What are your recommendations (and provide arguments for your position)?
Read the next installment, Prototyping.