Is Consulting the Business Model for Free Software?
One of the biggest questions that people often have about open-source software is, "If I don't pay for this, then how do the developers make money?" The standard answer to this question is that the developers can make money from consulting services. That is, the author of an open-source package can release the program for free, and then charge people to maintain and extend it.
There is some logic to this: Programmers know that the real trouble with software is not necessarily writing it, but rather debugging, maintaining, and extending it. I'm not aware of any program which is considered "feature-complete," meaning that it contains all of the features that you might ever want. Even when the program itself is completely extensible, and includes a programming language that allows the user to change almost everything -- as in the cases of GNU Emacs (which can be extended via Emacs Lisp) and Microsoft Office (which can be modified using VBA), we still expect to see new releases of the program. Even when a program has an enormous number of features, there's always more to be done, and more to be added. Which means that even if customers pay for programming as a service, rather than as a product, there is still a lot of money to be made.
At least, this is the logic behind the business strategy of many open-source companies: The programs themselves might be free of charge, and released under an open-source license. But they can make money by charging for support and services. Red Hat, for example, cannot charge for its software; after all, you can download and install everything from a Red Hat Linux distribution without paying for it. But only paying customers have access to Red Hat's update service, which allows system administrators to be confident that the latest and greatest version of Linux is running on their system. You don't have to pay Red Hat in order to get these updates, but even $500/year represents savings when compared with the time and effort that a system administrator would need to spend tracking and updating each of these packages.
The other revenue model for open-source companies is that of software consulting. Red Hat has tried its hand at this over the years, buying (and then sometimes selling) a variety of different companies that worked with open-source systems. This strategy, while well intentioned, has had mixed results; their purchase of ArsDigita, and their work on the "Red Hat Database" (really a relabeled version of PostgreSQL) didn't survive for very long.
One of Red Hat's biggest purchases on this front was JBoss, which made an open-source J2EE application server. Red Hat bought them in 2006 for $420 million, and has since used JBoss to strengthen its hand in the enterprise consulting market. The basic idea is that Red Hat won't charge companies for the software, but can command a handsome consulting fee for implementing applications based on JBoss. Consulting might not pay as well as a software product, but it can still make for a profitable business, particularly if they can successfully charge high rates. (We'll see what happens as the US continues to lurch into a recession; during the dot-com bust, many consulting companies found themselves in trouble, as companies laid off consultants along with employees.)
Last week, Red Hat announced that they had acquired another company, Amentra, which offers JBoss consulting. In so doing, Red Hat indicated that they were looking to move even more heavily into the world of services, and that they see this as a central pillar of their business model. Whether Amentra will give Red Hat the expertise that it needs, and whether companies are truly interested in JBoss despite the growth of scirpting languages such as Ruby and PHP, remains to be seen. But at least for now, it seems as though there is an answer to that age-old question about free software: Yes, you can make money from it, so long as you can find someone who needs it serviced and maintained.
Do you think consulting is a workable business model for open sourcers?