Contrary to what the title of this page could hint, I have no vesting interest in the libertarian movement that shakes the software publishing industry. I thrive to make a living by innovating in the software business. I have had some software patents granted, shamelessly, and I am not ready to give out a piece of my work from which I could get some legitimate revenue. Yet, I use and I appreciate the free software movement and its variants. Furthermore, as this page title indicates, I am convinced that any sufficiently useful piece of software function, of sufficiently broad use, is bound to become freely available (as in beer and as in speech) under a relatively short term after it has been released. Here is why.
A profit-making activity with null marginal cost
Writing a new and useful piece of software is difficult. This difficulty itself creates the attractiveness of the software engineering and research professions for very talented people, including some authentic philanthropists. Yet, behind the conceptual challenge of a new software concept, lies an ungrateful tuning phase, for which there is no alternative but to lay one's work a hundred times again on the workbench, to extract the pure concept from its gangue and refine it according to a real need and not according to the phantasm that generated it. This effort requires some distanciation, which is better achieved by followers and mercenaries than by the original creators. Those will require some financial rather than moral retributions. Besides, even a disinterested software creator concerned purely by the social, or even philosophical, impact of his creation will want to pull some fair benefits out of it, or at least not to see some others grab the whole profit for their own self. Hence, one does not create innovative software value without generating revenue, if only through the economic activity induced by the changes brought by the technological progress.
However, the raw fact exposed in the header holds for anyone who believes on the foundations of market-based economy and the benefits of free competition. In an economy where information storage and transfer costs are fixed, the cost of ownership and communication of a piece of software is indeed null. More to the point, in the presence of sufficient competition, the marginal cost of sufficiently general purpose software production is bound to be null as well. Here, software distinguishes itself from other works of the mind, such as works of art, for which originality is an integral part of the utility of the object. When the technological barrier to innovation can be crossed by a sufficiently large number of players, then anyone who wants a particular piece of software can get it from the provider who ask the least amount for it. In practice, this least-offering provider is one who has a foremost interest in the software being available to the largest possible population, to get the advantages I'll come to later. Hence the free software model does not require the economically absurd hypothesis of "philanthropic agents" to be successful.
Who creates free software: the industry, or amateurs ?
It is still necessary to demystify how is free software produced, and to clarify by which effects this movement imposes itself to the industry more than as a fad. Through some well mediated stories, one can figure itself a whole industry pulled up by a few romantic heroes of the names Stallman, Torvalds or Berners-Lee. More to the point, free software predates the rise of the hacker type as a new social stereotype. Indeed, the birth of the free software movement can be dated approximately with the introduction of the BSD software license at the end of the seventies. By allowing universities and other companies to extend the development of UNIX, ATT insured itself that a community of users could build up, maintain and extend a useful tool that did not constitute a fundamental asset in its core business. Free software appears therefore from the need of industry heavy weights to share the considerable efforts required by the development and tuning of the modern operating systems and the tools that go with them. Even though these systems required heavy investments, they were unlikely to be sellable in themselves. Only Microsoft, through a clever positioning which deserve attention, managed to turn it into a business model.
Free software is often assimilated to two communities: Computer Science research, mostly academics, and hobbyists, who take on their free time to create useful software. While there is some truth in this image, it hides the quiet but essential contribution of the heavyweight computing industry at all stages, from the inception of the projects to the distribution of their results.
To assess this statement, consider the following software projects and their history: the Mozilla foundation was founded by AOL to develop a competition to Microsoft's communication suite; it relies on the code base of Netscape, a relative commercial failure. The Eclipse foundation was created by IBM to offer a unified and industry standard development platform to its professional services branch. OpenOffice relies on StarOffice, which was financed by the Deustche Bank and some partners so that they would not have to rely on the major provider of productivity suites. Apache has similarly been formed by an industrial alliance. The funding companies are all driven by profit, but they also have a vested interest in seeing those pieces of software be used by the widest population as possible, so as to share the maintenance and evolution costs. The foundation's goals are to provide quality software, which answer well understood needs that have been identified a decade ago. They do not develop breakthrough innovations, nor attempt to redefine needs and solutions to those needs in an attempt to displace a tentative competition. This movement has a major impact on the public, with tens of millions of users, essentially because of the major quality assurance, packaging and communication efforts that have been undertaken and the strong support of major industrial networks. The Linux OS as well as the gcc compiler follow quite a similar free software model, being maintained and improved by for-profit companies, whose business model satisfy itself with the public sharing of a common software base.
This movement is to be put in contrast with the purer approach to free
software represented in the
SourceForge repository, emacs, the Gimp or LaTeX, or the GTK toolkit. For
sure, this authentic approach to software development is dynamic and
inspirational ; it is even useful and has non-negligible mediatic appeal.
However, its economical and public impact is far below the romance it generates
in the hacker's circles. TheGimp does not threaten Photoshop, Emacs does not
threaten Eclipse nor Visual Studio, LaTex does not threaten the professional
desktop publishing suites. For these "experimental" software pieces to become
real socio-economical phenomena, there must be an economical motivation in some
powerful business actors to make the required investments in quality and
distribution to produce a real impact.
This observation explains how the micro-economical deduction that useful software has to become eventually completely free finds its instantiation in the real world through the sociological phenomenon of the free software movement. It is in the best interest of the majors actors of the computer industry that common software bases are put together as a freely sharable resource once it is no more possible to obtain a significant competitive advantage that would justify a profit seeking activity.
How to maintain value in software development
Once this fact is acknowledge, one must find how is it possible for the software industry to maintain itself and thrive.
Let's first consider the most powerful provider of general purpose software, Microsoft. One can interpret the acquisition of its dominant position at a micro-economical level as being justified given how it has allowed the creation of a true competitive market of computing hardware. Indeed, it is not clear that Microsoft's original vision of computers as a commodity (a computer on every desk and in every home) could have materialized so early if hardware manufacturers had not had the ability to compete with one another relying on their core competencies, hardware design and manufacturing process rather than software features and performance. Certainly, UNIX might have been the common base on which such competition could have fostered, but one must admit that either the hardware industry was not ready to cope with the UNIX requirements, or that UNIX was not yet sufficiently operational to be used as a software platform on which hardware competition could develop itself. Anyhow, Microsoft has been the winner in this game, even though the OS competition is not over yet. Other dominant players have thrived by defining rallying standards on which whole new markets could develop themselves: Adobe with Postscript and pdf, Autodesk, Oracle... As we have stated before, originality is not a value criteria on the software market. Hence the ability to position itself as an arbitrator enabling the development of a fair competition between other players is surely a way to develop successful business models in the software world (in other worlds too, indeed...). Even when there is no room for such playing such an arbitration game, appearing as a "domain gorilla" is a sure way to generate growth, as the success of companies like SAP indicates.
Yet, obtaining such a dominant and arbitrating positions is certainly more a matter of luck than will. Also, it is clear that this position is only transient, even it life span is in the order of decades rather than years, specially in the software business. So to reach the comfortable position of being a quasi-monopoly and develop an industry, one must come up with novel goods or services which correspond to a need. To achieve this, two approaches can be undertaken:
- specialization, i.e. adapt a set of software features to a particular need. This is more or less the model followed by software consulting firms. For this approach to work, being able to rely on a large code base of free software is a panacea, hence this reinforces greatly the industry's motivation to promote the free software movement. By the way, this is the approach taken by IBM in its gigantic and so far successful mutation from a hardware gorilla to a huge software services player.
- innovation, i.e. create new software services, following a approach based on technological progress and relating it to potential new needs. This is probably the only viable approach that a software publisher can hope to sustain, and it is the approach I'm interested in here.
Innovation requires risk taking and investments. It requires constant readjustments of some initial requirements analysis according to an actual demand rather than the imaginary demand at the origin of the technological breakthrough proposal. As a consequence, the development process will be long and iterative, and, alas, can't even be correctly user or demand-centered before the product is ready to ship. It results that this software, however useful, will be imperfect, bloated with features in some places and oddities in others, coming from awkward adjustments made to late or to fast. In other words, unless through extraordinary luck, innovative software is bound to be partially usable and most likely buggy. This creates opportunities for competition to develop, but also for the publisher to sustain continued development and refinements of the original offer, by generating revenue through necessary maintenance and support. In short, the publisher make profit by selling remedies and fixes to the early versions of its offer, taking advantage of the early inadequacies of its product. After a while though, the design should be sufficiently straightforward and usable so that it will become easy for a larger base to tackle the identified need and come up with free and adequate solutions to the original need.
To summarize in a humorous way this contribution: the innovating software publisher creates profit by selling buggy and partially adequate software. It's only during this transition phase between the perception of a demand and the slow maturation towards providing an appropriate solution that both the competition game and the software development activities can be sustained. The various intellectual property protection systems (trade secret, copyright, patents...) are only partial solutions and have a limited lifespan and enforceability. Even the establishment of a de facto useful monopoly, such as Microsoft's, is most likely bound to recess.
In conclusion, I hope the reader can acknowledge the apparent paradox:
- Most free software is either the implementation of an old, mature technology, on which no competition can foster, or technology that is of fairly limited use/usability, and of too little potential to generate a significant economic activity ; hence its novelty impact must be somewhat limited.
- Most proprietary software is either highly specialized (hence most likely buggy for general purpose use), or not yet mature and sufficiently robust, so that the competition game can express itself and the publisher can invest more in its improvement, until, through a sequence of improvements, its actual marginal value will become perfectly null.
Note however that it is not because a software is imperfect that it is not useful! Quite the contrary, the economic activity around the software industry is sufficient a proof that the industrial world needs the innovative approach to software development.
- In this essay, I voluntarily assimilated free as in beer and free as in speech. This may seem unwelcome as many insist on a fundamental difference. Yet, the software I talk about happen to be free under both accounts. I avoided considering the case of software such as Netscape in its first versions, Skype, MySQL or Qt. By the way, These two last cases, together with a company such as RedHat, illustrate the industrial model of "specialization", in which the software company generates revenue by providing services and support rather then by selling the software.
- May be is UNIX BSD not the first example of useful and free software. At least, the early success of its licensing model makes it a notable ancestor.
- On this subject, have a look at "In the beginning was the command line". This is a visionary text by Neal Stephenson on the market of OS software. It happens to be also much better written and more entertaining than my broken English prose.
- In my opinion, UNIX as not been able to impose itself as a viable platform for competition because of some small design mistakes which were heavy in consequences. The most important of those mistakes being the X Window system, and more precisely the statement "mechanisms, not policy", and the materialization of this statement as the X resource manager... but that's for another story.
Follow-ups: Opinions on the various modes of software IP protection: trade secret, copyright, patents, contracts and other possibilities. Innovation, marketing and research...
Finally, I'd appreciate being able to gather comments to improve this text, but my annotation mechanism is ready yet ! send mail instead (t at the site name's)