The Virtues and Evils of Open Source

Yes, I know, I’ve been behind lately. A ton of very interesting things to catch up on. But I’d like to put in one quick note about open source code. I recently came across an article, written last year by a lawyer, generally advising development companies not to use open source. I don’t quite recall where it was (if I did I’d link to it) but I do remember it being quite clear in stating that using open source is A Bad Thing and to avoid it altogether – not just to be careful, but rather to treat it as one would radioactive waste.

With respect, I don’t quite agree. I certainly advise my clients to take a great deal of caution in using open source code, particularly the GPL variety, and very particularly if they have a desire to keep some or all of their own secret, proprietary code secret and proprietary. That being said, I do have many, many clients who have used open source code to great advantage in various ways. Some have simply used existing open source code to avoid reinventing the wheel (and saving on costs), while taking care to keep viral elements out of their proprietary code. Others have been more aggressive with the open source model and have intentionally decided to use open source as the basis for their business model and making their very own code, or parts of it, either open source or subject to a dual-licensing model. As the Red Hats, JBosses, Sleepycats, MySQLs etc. etc. of the world have demonstrated, you can go open source and still have a pretty viable business. And, of course, there are the “old world” companies like IBM who have decided to go open source (in some limited ways – e.g. IBM’s DB2 Express-C thing).

Of course, this is not to suggest that anyone through caution to the wind and just start pulling down stuff from Sourceforge and whacking it into your product. Use of open source definitely requires some planning ahead and consideration of what the business model and value proposition of your business will be. Optimally, enlist the help of a lawyer who’s familiar with open source licenses to discuss what you plan to do and the packages you plan to use. Or, if that’s not feasible, try at least to read the applicable licenses yourself and ensure you comply with them, because if you don’t think that anyone will notice, or that no one will actually sue you, you may want to pay a visit to the GPL Violations Site and reconsider, in addition to the questions that will be asked of you when the due diligence starts on your next round of financing or, even worse, your (aborted) exit event. Can badly managed open source usage (and I emphasize badly managed, not simply open source usage) kill a deal? Definitely.

In short – I don’t think open source is necessarily a bad thing. In fact, it can be a pretty good thing, not just in the social good sense and all that, but also as a business. But it need to be used taking into account its terms of use and ensuring that its consistent with the strategy you plan to take.

If perhaps there’s one thing I’d recommend it would be for shops to make absolutely sure they have a disciplined approach in tracking where code comes from and the terms under which its being used and why its being used. That applies not only to open source stuff, but also, for example, your programmers taking neat snippets of code from Dr. Dobbs or something else, or coming across a nice little script somewhere on the Web and saying “Gee, that’s neat, let’s use it in our product”.

Anyway, if I remember where the article was I’ll update this to include a link.

colophon

From time to time, you may notice that this blog isn’t working, or something is messed up, or you see an error message. One of the reasons I decided to setup this blog rather than using something like blogger, wordpress.com, etc., was to muck about with the bits and pieces from time to time. I find tweaking PHP code, looking at new plugins and editing themes to be a nice break from drafting 50 page master procurement agreements. In fact, I would have liked to do everything from the ground up (i.e. set up the box, linux, apache, mysql, php, etc.) but these days hosting service providers make the proposition of setting that up much less attractive. I figured taking care of some (but not all) of the bits and pieces would satisfy my tweaking desires. And let me keep somewhat acquainted with such things. Of course, not being an elite hacker inevitably leads to things that break from time to time.

Switched to WP Engine. Their service was too amazing to resist. I realized that I didn’t have time to do everything, after trying out Linode (great service, by the way).

Anyway, the great (and for the most part free) software and other stuff used to create techblawg.ca:

  • WordPress – amazingly great and overall very, very cool blogging software
  • Theme – Responsive by CyberChimps
  • MySQL – the stunning database engine that will one day take over the entire world, but which in the meantime serves as the back-end database storing all the bits and pieces for WordPress
  • PHP – the remarkably versatile scripting language that WordPress uses
  • Plugins – a whole bunch of little individual bits of code that plugin to WordPress to extend functionality in a million different ways. There is a long, long, long list of different plugins used on techblawg so for the time being I won’t be listing them all out here

Without the work and dedication of all the folks who created the tools listed above and made them freely available, many blogs (indeed, many sites) would simply not be in existence as it would have otherwise not been practical to create them. I guess this is the exact opposite of the tragedy of the commons.

Other things that power this blog are myself, David Ma, and huge quantities of coffee. Hope you enjoy it.