One of the guerilla tactics that I have shunned all my career is the notion that software is free. I make my living building software. I know how hard it is and I know how much time it takes away from my family. As a result, I have always been averse to pirating software and whenever I have needed a tool that I have wanted to use, I have paid for the tool.

Tools that I couldn’t live without include Beyond Compare, Enterprise Architect, WinZip, Nero and various others. One of my upcoming posts will list the tools that I make use of to do my job.  With each of these, I have bought the license because it is worth it. The tools more than pay for themselves in the functionality that they provide.

Recently, though, I have been looking into some significant new projects that need some pretty sophisticated software – enterprise-class AppServers and Databases and powerful, rich clients. Obviously, my investigation has included the usual (and some unusual) suspects.

Before I go any further there are two things that I need to make clear:

  1. I am not endorsing any particular technology. Your mileage may vary and I strongly encourage you to do your own investigation; and
  2. I am not new to the open source initiatives that I am discussing below. I have used open source code on many occasions for many tasks. What I am talking about here is the use of open source products in a commercial context at an enterprise level.

Many of the software guerillas that are out there are actually mercenaries (as Christopher Duncan calls himself). They are contractors hired to do a job. These mercenaries need their weapons of war – tools that they use to build software. With corporations increasingly pressuring IT to reduce its costs, engineers are being forced to look at cheaper development alternatives. They need to keep their costs down too.

In looking at these new projects, cost is a serious concern. I need to be able to develop these applications with very low initial and annual maintenance costs. This needs to be balanced with the need to provide the enterprise with a stable, high-performance, enterprise-class solution. The cost of the software that I use to build the applications is thus a serious concern.

Historically, I have shyed away from software that is “free” because, as the cliche goes, you get what you pay for. If software is given away, where does the money come from to keep supporting it? This includes using open source software to build and run commercial, enterprise-class applications. I could not bring myself to believe that it was possible that non-commercial software was sufficiently stable with sufficient support to make this a viable alternative.

About 5 years ago I started changing my attitude about this when I was involved in building a commercial development environment using Eclipse. At first I was extremely negative about Eclipse because I did not believe it had a long-term life. I guess my experience was tainted by the bad experience I had had with an open source project that had limited success several years earlier.

The Eclipse project I was involved in taught me a lot about the value of the ruthless meritocracy that governs the development of open source code. This same meritocracy can be seen in any of the successful open source projects, including most of the Apache Software Foundation projects. And here’s the most interesting point about this:

Developers produce better quality code in an open-source project than they do when they get paid for it!

That sounds counter-intuitive, but my experience with it seems to indicate that this is a truism. One of the reasons for this is that most software guerillas remain idealists at heart. Any time we get to build what we want to build, we do the best we can and when we are challenged by doing so in the fish-bowl of an open-source project, we are inclined to be even more careful about the code we write.

The effect of this is that much of the code that is produced for an open source project is actually better code than what is available from a commercial application. It is better written, better tested and therefore more stable than something that was produced under a manufactured deadline.

I started out this post saying that I am looking at some technology solutions for some complex applications. My usual suspects are always:

  • Microsoft’s .NET, its development tools and its associated backend products, including ASP.NET and SQL Server;
  • Progress OpenEdge, its development tools and its associated back-end products including WebSpeed, AppServer and the Progress Database; and
  • Java, its development tools and its associated backend products including JSP, Java EE (Glassfish, et al), etc.

The great equalizer in the set above is the cost. Microsoft’s development platform for the cheapest useful development platform (MSDN Professional) is going to set you back $2500. From there, deployment costs for the components are dependent on what you are doing size-wise, but just your software costs are going to put a dent in the better part of $20K for the deployment I am looking at.

Progress OpenEdge is not much better, but its harder to spell out the costs in the configuration I am looking at. I will therefore refrain from attaching a pricetag to the OpenEdge deployment.

The Java configuration is another story. There is an array of free development environments to choose from – I use both NetBeans and Eclipse. Java EE is free to deploy so that means that there are no deployment costs to the production environment unless you choose to spend the money on enterprise-level support.

The operative word in that last sentence is “choose”. With the other product suites, the penalty of not choosing support is significant. You end up paying it later with penalties if you want upgrades. With Java EE, the upgrades are available free. It is only when you need the enterprise support that you pay for it.

I haven’t said anything about the databases at this point. MySQL has become a very viable alternative to commercial products like Oracle, Microsoft SQL Server and Progress OpenEdge. In fact, in some of those cases, MySQL is a better technical solution anyway. Again, MySQL has support options where you choose to use them in a production environment, and again, you have the choice.

IT costs have represented a significant portion of the costs of doing business for the last 50 years. Now, in an economy that is in the worst situation the IT industry has ever seen, IT has got to be willing to step up and realize that the cost of doing business has to drop. Small to medium size businesses are going to be forced to review their development expenses and more and more companies are going to ditch software that costs a fortune to maintain. Developers, particularly consultants, are going to ditch commercial products that come with these costs in favor of cheaper products.

This is not a new prediction – people have been saying it for years. But here’s the real game-changer. The economy is forcing people to review their costs and open source code has got to the point where technically it is equivalent to or better than the corresponding commercial software.

At the end of the day, what business cares about is the cost of it!

GD Star Rating
loading...
Share