I’m not going to name the software company or their product because I believe they would cheerfully sue me down to my underwear if they were identified. As a result, I’m going to change a few details, but the following nightmare is true. And if you meet me at a conference, I am not going to tell you who they are. Instead, I’ll call them “Alpha”. Comments are enabled for this entry, but please don’t speculate about who this company might be. I can’t afford the legal fees (though feel to post similar horror stories).
Alpha is a huge software company that puts out a very, very fast, scalable piece of software that many companies use for mission critical work. To their credit, their software usually does what it’s supposed to do, but it’s extremely expensive and requires very expensive employees to maintain it. Because of the nature of my work, I’ve had encounters with Alpha numerous times. Here is why I almost always recommend alternatives, preferably open-source.
My first encounter with Alpha was at a company that was doing work for a charity. Alpha had been doing a lot of work with this charity and when they found out we were using an open-source competitor, they offered us free licenses and on-call consultants — also free. Since Alpha was such a superior choice to what we were using, I was stunned when the company just flatly rejected the offer. Over the years, I began to understand why. In this particular case, I was at a technology company when Alpha announced that they were developing software that was in direct competition with us. By offering us free consulting, they would know how we were using their technology and could incorporate our ideas into their software.
At that same conference, I was chatting with the owner of a small software company who had, for years, been developing free software for this charity because he believed in their mission. His software was popular and had been heavily used at the charity. When the charity needed this software for an extremely large project, they put out a bid for it. Alpha was throwing a lot of money at this charity and even though they were expensive and hadn’t written the software, they beat out the cheaper, already working alternative.
When Alpha finally delivered their software, it was such junk that that the charity and Alpha admitted it wouldn’t work and couldn’t be made to work in time for the project. The charity turned to the alternative company but they said “no”. There wasn’t enough time to load all of the data, customize the schedules, configure the system, build the network, and so on. Alpha, to their credit, came forward and said “since we screwed up, we’ll donate all of the labor and supplies”. The project came off without a hitch, until one of the network techs working for the small company noticed something odd. A bit of digging in revealed that Alpha had installed packet sniffers everywhere to understand what was being done with the data. Yet again, Alpha was using unethical means to crush the competition.
On yet another software project for a different company, Alpha was misbehaving. We called them and were told to upgrade some other software. It was a difficult upgrade, but we did it. The bug was still there. We were told to upgrade to the latest release of that software. So we did. The bug was still there. We were told to upgrade to a particular point release. The bug was still there. Then, and only then, were we told that this was a known bug that they were trying to fix.
Now this is an “ONLamp” blog and nothing I’ve said really touches on LAMP technologies, but since LAMP technologies are open-source (and free), it only seems fair to shine a light on the monster under the bed with an open-source success story.
On one project, Alpha was phenomenally slow. Since Alpha is famed for being fast, it seemed a bit odd that it would be slow, but nothing we could do could speed it up. We even had a very expensive Alpha consultant come in. He’d done a lot of fabulous work for us and was highly recommended by others, but he couldn’t solve our core business problem with Alpha. We needed a custom extension and the only tools that Alpha provided were so slow as to be unworkable.
We then chose an open-source alternative, looked at the source code and figured out how to write our custom extension in C. Alpha had response times of over a minute. The open-source alternative, though being well-documented for not being quite as fast (or as feature rich), in our particular case had response times in seconds, not minutes. We dumped Alpha for the alternative, saved tons of money and kept our project from failing — all because the alternative was open-source.
I’m not against charging for software. Though I prefer free software — when it can do the job — I see nothing inherently wrong with a company’s business model saying “you pay for the software”. Whether that business model is workable is another story, but companies should have the right to choose how they want to do business. What I am against is closed-source software. For at least two of the problems above, we could have fixed the issues we had if we could have looked at the source code. The problem, of course, is how those companies can then protect people from pirating their software. If they charged for installation, consulting and maintenance instead of for the software itself, it can help to mitigate this problem, but not make it go away entirely. Regrettably, there are zealots on many sides in this debate and this makes trying to find a workable compromise for a thorny problem a difficult task.