Over the years there has been much discussion about whether closed-source, proprietary software (CSPS) or Free and Open-Source Software (FOSS) has the lower Total Cost of Ownership (TCO). This typically goes hand-in-hand with discussions about whether software and computing in general are considered strategic investments or simple necessities of modern life, and that discussion typically follows from the discussion of whether software is a commodity or not.
Commodity: A Can of Corn or a Car?
I consider a commodity something like canned corn. If you go to a grocery store and spend more than 15 seconds considering what can of corn to buy off the shelf, you are wasting your time. You might already have a strategy for buying the branded corn or the “store brand” or the “generic brand” that comes in the white label that just says “corn” on it, but often you apply that strategy over-all to the other canned vegetables because for the most part, canned corn is canned corn.
Compare that to buying a car. Even though every car has a steering wheel, gas pedal and break, you don't just plunk down a suitcase of money and say “give me any car on the lot.” You typically spend a lot of time buying a car since you want it to be safe, get good gas mileage, tow your trailer, hold your family, and other things that determine the make and model of car you are going to buy.
Cars are not commodities and neither are business solutions. Each business problem is unique in some way, so why should you use a “commodity” software solution that you can't modify to solve a unique business problem? Having demonstrated the fallacy of “commodity software,” we can now discuss if your software is strategic or not.
Is Software Strategic?
Imagine that all computers suddenly vanished from the face of the earth. Elevators would stop working; telephones would stop working; late model cars would refuse to run; modern cash registers would stop; and you can go on and on. These things used to operate using mechanical methods, but microprocessors and micro-controllers have replaced the mechanics in even the simplest of devices. It is not that computing has become less “strategic” for us; it is that computing has become more familiar, and as we have all been told many times, familiarity breeds contempt.
We may not spend as much time and effort making decisions on what computing to purchase because we state that computing is to be a “commodity” when what we mean is that it is “inexpensive” by the standards of 30 years ago. Some people are even willing to push our computing needs off to “the cloud" without that term being fully defined, because we are told that the TCO will be less than if we purchase and manage the hardware and software ourselves. But is that the right solution?
What is the Truth About TCO?
Addressing TCO for a moment, let's look at the current arguments of TCO for software. A software maker in Redmond, Washington recently commissioned a study about TCO of CSPS versus FOSS in educational environments. It found that FOSS started out less expensive (due to lesser or no up-front licensing costs), but over a five year period it ended up costing “about the same” due to the scarcity and higher costs of support. An interesting study, since it stated (in effect) that FOSS support people made more money than CSPS support people due to scarcity, which seems to imply that universities should start training more students in how to support FOSS. And since the report could not predict the future, it could not predict if these costs of FOSS support would come down as the number of FOSS support people increased.
However, while TCO is important, most business people normally think about Return on Investment (ROI) as the real deciding factor when considering overall cost. This is where FOSS really shines. I believe that dollar for dollar, FOSS gives better ROI than closed source proprietary software.
Why Does FOSS Typically Give Better ROI?
Imagine if you were trying to glue two glass rods together. Each of the glass rod ends is shiny and smooth, and the glue can't get a good grip on the glass. It might hold for a few minutes, but eventually the glue will lose its grip. If you could take a bit of sandpaper and rough up the surfaces, the glue could get a better grip, and the rods might stay glued together.
Consider the same analogy with software: With two pieces of CSPS software you can't “sand” them to make them integrate better. Any integration has to be done with the provided APIs that you have (if any). With FOSS software, you could change the source code of the two pieces and get them to integrate better. You can formulate a better integration than if the software was “closed.” This is the core of the argument around ROI: the ability to change the software to meet your business needs.
CSPS advocates will argue that the companies that produce the software can integrate it for you. I find it hard to believe that large software companies will allow the types of integration that will be mentioned in the following ROI examples.
St. Petersburg, Russia
A turbine test bed is where mechanical engineers send steam turbines to be tested for efficiency. The resulting data is then given back to the mechanical engineers to re-design the turbine to make it more efficient.
I have been told that there are five of these turbine test beds in the world, and four of them use proprietary software developed for them. If the mechanical engineers need a change to the software, it may take months for the turbine test bed owners to negotiate the prices for the change, the change to be made, tested, and delivered by the maker of the proprietary software.
The fifth turbine test bed (in St. Petersburg, Russia) uses FOSS software, generated from software such as Tcl/Tk, GNUplot, MySQL, Linux, Apache and other FOSS software. The mechanical engineers can go over the Internet to see the results of the tests. If they need some small change to the turbine test bed software, the owner of the test bed can usually make that change overnight.
So which set of mechanical engineering customers gets the better service? The ones that use CSPS or FOSS? And which turbine test bed do you think gets the most business? The ones where a simple change takes months, or the one that can make the change overnight?
The Brazilian Lottery used to be run by CSPS. The maintenance costs on the CSPS were fairly high, but that was not the main problem, as the lottery generates lots of money each month.
The real problem was that it often took the company that wrote the CSPS ten months to generate a new game for the lottery.
So Caixa Econômica Federal, the state bank that runs the lottery, decided to use FOSS software and brought the software development inside by hiring a staff of FOSS programmers. This allowed Caixa to make new games in three weeks instead of ten months. The shortening of time from ten months to three weeks allowed the new games to come to market typically nine months and one week early.
ROI on this investment was not only a huge savings in monthly maintenance fees, but also the amount of revenue generated by having the new game earlier.
It used to be that large wind tunnels were used to test airplanes for efficiency and safety. Models of the airplanes were made either full size or as close to full size as possible and put in these very large wind tunnels to gather information about the fluid dynamics of air flow over the craft. These very large wind tunnels were very expensive to build and maintain.
Likewise car manufacturers would put crash dummies into their cars and crash them into walls at high speed to test the strength and safety of the car. Of course, it is one thing to do this testing with an inexpensive car, and quite another to do it with a Rolls Royce.
Fortunately the mathematics of fluid dynamics (part of the answer in both cases) and the ability to simulate the answer has allowed the world's largest wind tunnels to be turned off for good, and the saving of many crash-test dummies by simulating the car wrecks from the information supplied by the engineers.
Unfortunately the ROI of this software investment is tapered by the length of time it takes to run the simulation. If it takes too long, the engineer has to wait to see the results of the next change. By dividing up the problem into many parallel streams and solving it on a FOSS Linux High Performance Cluster, the turn-around time for engineering changes can be shortened to hours instead of days and weeks. Faster turn-around means faster delivery times of new designs. ROI is measured in time-to-market.
Rio de Janeiro, Brazil
A small company in Rio de Janeiro wanted to examine the Brazilian rain forest for new medicines, materials, etc. They were going to use mapping software from a very large US-based firm, and the licenses (they needed nine licenses) would be very expensive. The small company had the money for the licenses, but at that time the software firm did not support the Portuguese language in their products and the small company only had Portuguese-speaking people. The Brazilian company asked for a Portuguese version and the software company refused, since it was “not in their best business interest”.
I can sympathize with the software company, since they might do all of that work, generate a small number of licenses for the company in Brazil, and perhaps never sell another Portuguese license again. On the other hand, it might have opened a large market for them (Brazil is the twelfth largest economy in the world and is doing a lot of mapping work).
So the Brazilian company went to a FOSS developer and asked if he could put together a FOSS solution. Using OpenGIS, GNUplot, PostgreSQL and Python (to glue it all together) in three months and for a fraction of the software licensing prices, he had created what the software the Brazilian company needed.
Now the TCO of the software produced was a fraction of the cost of the licenses, but that was not the real value of the software to the Brazilian company. Nor was the value of the FOSS measured by the savings generated from the licensing fees saved. The real ROI of this software was infinite, because without it the Brazilian company could not exist.
While TCO can dictate if your solution is affordable, you should really be concentrating on ROI. It is important to remember that ROI is not necessarily measured in the actual money coming in from the investment in the solution. It can be also measured in customer satisfaction due to the flexibility of your solution.
With CSPS you are limited to the same solutions and ROI that your competitors have, since they are using the same software. By using FOSS, you have the ability to make a business decision to use the software the way it comes, or to change the software to meet your (or your customers) needs.