I must confess I was somewhat taken aback by the amount of interest generated by my recent blogs exploring the use of open source databases, Web programming languages, and even the use of WordPress for internal communication.
For today, I thought it would be fun to play the devil's advocate, and highlight some common problems that can, and often do, arise from the use of open source technologies. Read on, and let me know if you agree.
Problem #1: Boss takes your "free" argument quite literally
Against all odds, you convince your boss that those smooth-talking marketers are all wrong, and that the future is in adopting a completely open source paradigm. Everything looks rosy until you submit The Grand Plan to build the world's greatest CMS using existing open source tools.
Then you realize that your boss never factored the cost of additional manpower, your overtime allowances, or new server hardware into the budget. Free means free, right?
Problem #2: Seemingly endless upgrade and patch cycles
Despite the initial hiccup over the mundane topic of funding, you finally get everything up and running.
At this point, your new-fangled portal is made up of the following:
- Debian Linux Operating System
- Apache Web Server
- Squid proxy server
- PHP web programming
- WordPress blog software
- MySQL database
- ADOdb database abstraction library for PHP
- Smarty template engine
Since you installed them separately, your daily routine now involves reading up for any new vulnerabilities or updates first thing in the morning.
Updating or installation of security patches will need to be promptly attended to, especially since your site is an Internet-facing one. And you better hope that none of the new updates break anything in your unique configuration.
Problem #3: Everything that could be modified, gets modified
Picture this: The previous programmer implemented WordPress on Linux -- and tacked to a PostgreSQL DBMS for stability. He then revamped the frontend UI to run off the Smarty Template engine, and extended the platform to authenticate via Active Directory. For good measure, the system is modified further to host a number of custom Java applets that pull data from your Oracle-based ERP installation.
In short: It's one cool rig. Unfortunately, the geek who did all these cool hacks has since left the company and moved to a new job over in the Valley. And open source or not, nobody else in the company has the faintest idea where to start maintaining it, and that includes yourself.
You have a few options now:
- Pretend everything is fine, but refuse all change requests on the ground of "not possible." Look for a new job in the meantime.
- Tell your CIO/Manager that the company now has to hire a Linux system administrator, PostgreSQL database administrator, PHP programmer, and Java programmer.
- Scrap the whole system and switch to a proprietary solution supported by a vendor that is actually available.
And in case you don't think the above scenario is likely, it actually happened to me - in a manner, anyway. Before moving to a new company, I found myself having to put in some serious effort to train my replacement about the Linux-hosted IPCop firewall, PostgreSQL and MySQL databases, PHP-based Geeklog CMS system, Crystal Reports Server (Not free), virtual machines - it wasn't mainstream then - and half a dozen other free and easily modifiable software packages and technologies that I have implemented over a couple of years.
Mind you, I derived a great amount of satisfaction setting it all up. While my intention was to save some money for the SMB I worked for, I belatedly realized that what I actually did was to create an ecosystem consisting of so many disparate and specialized technologies that it would be hideously expensive for the SMB I worked for to hire back the same expertise.
The above are just the first few problems that came to my mind. Do feel free to share about any nightmarish open source scenarios that you might have encountered.