Contents:
- Introduction
- The Software Lifecycle
- A Step Back: Other Industries
- Free Open-Source Automobiles?
- More about the Maturity Stage: The Cathedral and the Bazaar
- The Error of Hard-Core FOSS Advocates
- The Error of Commercial Enterprises
- Linux: Another Look at the Software Lifecycle
- Commerce in a FOSS World
- Concluding Remarks
- Acknowledgments
Introduction
Author’s Note: Originally published in 2005, this article has stood the test of time well. It received wide interest on Slashdot and other tech web sites. I am republishing it on request.
The rise of Free Open-Source Software (FOSS) has fundamentally altered the economy of software publishing, and in fact is having an impact in almost all modern industries across the globe. Yet, there is a huge amount of ignorance about FOSS.
- Why do some companies fail to see FOSS coming?
- Why do some FOSS projects start at the worst possible time?
- Why do companies fight FOSS, a battle they are guaranteed to lose?
- Why do FOSS advocates think everything should be FOSS?
FOSS has generated a remarkable amount of debate, both informal and in the courtroom. To those of us who lived through the sixties, some FOSS advocates make statements are reminiscent of the idealism of that time – the sharing, the community feeling, the spirit of cooperation, and most of all, the “Up yours!” to the big corporations and big government. Listening to the most dedicated FOSS advocates, one could easily imagine the speaker was talking of civil rights, war protests, or women’s suffrage.
On the other side, some commercial enterprises see FOSS as a nuisance at best, and at worst a threat to capitalism itself, or (a few absurdly claim) unconstitutional and un-American. Listening to the strongest FOSS critics, you might think communists are landing on America’s shores, and our modern way of life and economy will come crashing down if FOSS is allowed to survive.
Both sides are wrong. There is a natural “lifecycle” to software technology, which includes both commercial periods and FOSS periods. Those who understand this pattern can work with it and thrive. Those who don’t understand the pattern, or who choose to fight it, are in for a lot of frustration.
In this essay, we’ll explore why almost all software technology will go through stages that include a commercial, for-profit period, but ultimately end up FOSS. We’ll look at why commercial involvement is a natural and positive force, and why FOSS is the inevitable endpoint of most software technology.
You can find an excellent short history of FOSS here.
The Software Lifecycle
Let’s begin with the software lifecycle itself. Later, we’ll dig deeper into the reasons behind each phase. As we go, we’ll use the history of web servers (such as Apache and Microsoft IIS) to illustrate each phase.
Stage 1. Invention
Somebody has an idea, and makes it work.
In the beginning (that would be 1989), Tim Berners-Lee had the idea of a global hypertext project. It was a cool notion, and Berners-Lee and his colleagues had the vision, motivation and skill to actually build the first HTTP servers that worked.
A few papers were published, emails were sent, and the spark took hold.
Stage 2. Expansion and Innovation
The world takes notice, and the technology begins to expand rapidly.
In the commercial world, investors with money take notice, and the funding begins. Many innovators are hired, and they improve the and expand technology. There is fierce competition as companies leapfrog one another vying to have the most, the fastest, the best product. But in spite of competition and secrecy, ideas spread quickly and innovators build on one another’s work.
In the FOSS community, people begin contributing to the effort because they need the functionality. They contribute time and computing resources because their efforts are repaid manyfold. However, depending on the complexity of the technology, it can be difficult for FOSS projects to start at this stage, as explained below.
Both FOSS and commercial versions may coexist, but commercial forces usually dominate the innovative process at this point.
As R&D money poured into the web-server market, innovation accelerated, and the feature set that was expected of any decent web server grew considerably. Instead of delivering static content, servers were expected to run CGI’s, do server-side replacements, support content negotiation, offer encryption and strong security, and much more. The idea of the web, and the requirements on its engines, far surpassed the original idea from Mr. Berners-Lee and his colleagues. A whole sub-genre of servers was also spawned to supply specialized services such as streaming video and music.
The commercial vendors pushed the boundaries of the technology to the logical limits. This money-fueled race for the finish line generated a huge amount of creativity, and pushed the technology much farther and faster than any FOSS effort could have. Apache was left behind in the features race (although it never lost its lead as the number one web server).
By the mid-nineties there were dozens of web servers, including Apache (which had quickly supplanted its ancestor, the NCSA server), and servers from Netscape, Sun, Microsoft and a number of others, as well as some internal projects from large ISPs that were never offered for sale. Commercial interest was high. Huge sums were spent on R&D and marketing. Potential profits from valuable web-browser products were “sacrificed” as loss leaders to hook web-server customers. For example, both Microsoft and Netscape used their free browsers as leverage to try to gain market share for their respective web servers.
Stage 3. Consolidation
A few projects edge into the lead, and their leads quickly cascade into dominance. The other projects are absorbed or go out of business. The era of excitement and seemingly limitless possibilities is over. There is much disappointment and disillusionment. A few investors make big money, the rest withdraw.
The commercial web-server battle was won by Microsoft with sheer brute force, They had a decent product, but more importantly, they had both the money and the desire to take over the internet infrastructure. Microsoft was willing to invest whatever amount was necessary to bury Netscape, Sun and anyone else who came along. And besides the direct investment in R&D, Microsoft added features to its server that were only compatible with its other PC products. Since Microsoft had a virtual monopoly with its Windows operating system, this enabled it to create “standards” that only the Microsoft IIS web server supported.
In the FOSS world, it was never a contest. Apache’s features dominated from the start, and nobody bothered to start a competing project. (And why should they? FOSS is fundamentally collaborative, not competitive.)
Stage 4. Maturity
The market is reduced to a handful of products. Innovation slows to a moderate pace. It is difficult or impossible for new suppliers to get into the market. Investors have recovered their profits (or lost it) and are no longer interested in the technology. If there are small players left, they are in specialized “niche” markets.
Currently (2005), Apache and Microsoft IIS dominate. Other marginal specialty players collectively hold a few percent of the market, but it’s a good bet that no major new httpd server will ever displace either Apache or IIS. Features are being added, but the rate is modest and mostly to accommodate other new technology such as security.
A critical factor in the Maturity phase is that the technology is well specified. Everybody knows what a web server is supposed to do, and because the pace of development is slow, it’s possible to move to Stage 5.
Stage 5. FOSS Domination
With the slow pace of innovation of the Maturity phase, the FOSS community begins to slowly but inexorably erode the technical lead held by the commercial offerings. FOSS versions of the technology may have been present all along, but the pace of innovation during the Expansion phase often left them in the dust. But now, with the technology mature and the pace of innovation slow, FOSS becomes the proverbial turtle, plugging along toward the finish line, slow but unstoppable. Feature by feature, the FOSS developers eat away at the commercial products.
The commercial suppliers are doubly cornered.
First, the product is no longer cutting edge, so staffing is reduced and management interest is low. Since there’s little innovation, R&D costs are low, which means profits are high. Developers who want to innovate are discouraged, because there’s little potential return on investment.
Second, the technology has expanded to the logical boundaries, and additional features are less and less relevant to the core technology. These two factors slow innovation dramatically in the commercial sector.
Sooner or later, the FOSS product not only matches the commercial products feature-for-feature, but the nature of open-source software makes the FOSS product more reliable, higher performance and (where security is a concern) more trusted.
During this “end game”, there is often a series of attacks on the FOSS software by commercial suppliers.These vary but may include legitimate competitive attacks such as feature or performance comparisons and support issues. There may be a spurt of new R&D. Sometimes legalistic tricks are used to block FOSS acceptance, such as certification requirements that are incompatible with FOSS itself, or getting standards bodies to accept patented technology as a “standard”. As FOSS continues to erode the commercial market share, the attacks often turn turn somewhat shady or desperate, such as unfounded claims of security problems, copyright or patent attacks, hints that FOSS is written by “foreigners” with unsavory motives, and other “mud slinging” tactics.
Stage 6: The FOSS era
In the end, the FOSS version dominates. Commercial products may live on (just like VAX lives on), but mostly through momentum. Some commercial vendors may specialize into “niche” markets with needs not addressed by the general FOSS product. They create new “micro markets” by providing specialized versions of their products, or adapting the FOSS version with specialized features.
As of this writing (2004), the web-server market has not yet entered this phase. Apache has more installations, but Microsoft IIS and Apache are holding steady in their market share. Microsoft is using its near-monopoly in operating systems to “prop up” its IIS web-server product. Microsoft’s strategy, which ties a number of technologies together that individually would fail, will probably keep the IIS / Apache situation static for some time to come.
But there is essentially nothing critical that Apache can’t do, and many of Apache’s features are better than Microsoft IIS. Apache’s security is far more trusted due to its open-source development (not to mention actual statistics, which show that IIS is far more vulnerable to attack in real life). And there is a host of extremely smart developers who are willing and able to implement or improve any particular feature of IIS that is deficient in Apache.
A Pattern: Other Industries
There is a pattern that underlies many industries. There are entire books on this pattern, this is just a brief sketch. It goes something like this:
- Stage 1. Invention
- Stage 2. Expansion and Innovation
- Stage 3. Consolidation
- Stage 4. Maturity
This pattern is followed by many, if not most, industries. You can find it in as diverse technologies as automobiles, personal computers, the steel industry, and mountain-bike manufacturers. The general pattern is widespread.
The auto industry is a great example of this pattern.
- Invention: In the 1800’s, several innovators got the basic notion that you could convert exploding hydrocarbons into continuous power, and hook that power to wheels thereby creating a self-propelled vehicle.
- Expansion and Innovation: Between 1896 and 1930, there were over 1800 automobile manufacturers in the United States alone, and automobile technology went through and incredible series of inventions and improvements.
- Consolidation: By the 1950’s, most of the consolidation was complete, leaving just four American manufacturers.
- Maturity: Innovation slowed dramatically. The basic notion of what a car was went relatively unchanged for a couple decades. The industry was faced with a foreign challenge in the 1970’s, which revitalized the industry.
Even the casual reader will notice that Stages 5 and 6 of the software lifecycle are missing from the auto industry. Why is this? Well, that’s what we’re here for.
Free Open-Source Automobiles?
Did you ever sign a license agreement that banned you from reverse-engineering your car? No. It’s the difference between information and bricks: Information costs essentially zero to copy, but every brick costs the same as the last one.
Once a manufacturer designs a new car, they have to invest a billion dollars or so building a REALLY big factory to manufacture them. By contrast, once you design your software, you (or anybody else) can manufacture it for virtually nothing. This is true of all products that consist of information rather than things: books, movies, music, encyclopedias, stock predictions and newspapers, and is the foundation of the current crisis of rampant information theft on the internet.
This is the critical difference between “traditional” businesses and software: Software costs virtually nothing to manufacture. It is hard to emphasize this point enough, for it is the key to the last two stages of the software lifecycle, and the key to understanding the business itself.
The automobile industry can never have a “Free Open-Source” product, that is, stages five and six that we introduced above, simply because the manufacturing price of a car is virtually infinite compared with the price to copy software.
At the same time, it’s very important to recognize that, for the first four stages, software and automobiles share a common pattern. Software is subject to the same socioeconomic forces that have driven commerce since the advent of commerce itself.
More about the Maturity Stage: The Cathedral and the Bazaar
I want to focus for a moment on the transition from the Maturity phase to FOSS Domination. This is the critical step that differentiates software from “brick and mortar” industries like automobile manufacturing.
Eric S. Raymond wrote an essay entitled The Cathedral and the Bazaar which rapidly became the foundation for a whole new understanding of how and why FOSS can succeed. In it, he illustrates how cathedrals and bazaars are designed by entirely different methodologies, yet both are highly complex system with many interacting and interrelated components. The Cathedral is designed formally, with a top-down, highly structured approach that ensures that before the first stone is laid, we know the Cathedral will not fall down and will serve its purpose. By contrast, the bazaar grows “organically” into a self-organizing complex but workable system.
Raymond made a critical point that is the key for the transition from the Maturity stage to the FOSS stage: The bazaar-style FOSS process can’t start from scratch. Somebody has to start off with a basic, functioning system that may be crude and rough, but works. As Raymond put it,
“When you start community-building, what you need to be able to present is a plausible promise. Your program doesn’t have to work particularly well. It can be crude, buggy, incomplete, and poorly documented. What it must not fail to do is (a) run, and (b) convince potential co-developers that it can be evolved into something really neat in the foreseeable future.”
The key to Ramond’s “plausible promise” is that your program (or system) must have a solid design. Excellent design comes from excellent designers, not from democratic collaborations. You can run a government that way, but not software architecture.
Linux is an excellent example of this. The vast majority of its code was written by later collaborators, but the fundamental design was the work of one individual. And Linux itself is the natural descendant of Unix, another product from the mind of another great designer. Without a fundamental framework around which the entire FOSS team can rally, a FOSS project will flounder.
This is why FOSS can so easily slip in and dominate at the Maturity phase of a software technology: The fundamental structure of the technology is already designed, and everybody knows what needs to be done.
When a FOSS project starts prior to the Maturity phase of a software technology, it is much more difficult, because it needs a visionary, someone who is the system architect, someone who can lead a team of unruly, freethinking, independent software writers towards a single, clear goal. It can and has been done, but it’s difficult.
By contrast, a FOSS project at the Maturity phase of a technology is relatively easy. The vision is complete, the goals are clear, and there are examples of working products that do the job. Again, Linux serves as a nice illustration. Linus Torvalds, the original author of Linux, did an excellent job of designing and creating the core Linux system, but he was able to build on the work of thousands before him. Operating System technology was mature, and the basic idea of Unix (its file-system concepts, security model, memory management, and many other key features) were well understood; Linus’ job was to put together a new implementation of these concepts, rather than start from scratch.
Because the Operating System software technology was mature, a single, clever individual was able to achieve the all-important “plausible promise”, then rally thousands of contributors to the cause, in a remarkably short time.
The Error of Hard-Core FOSS Advocates
There is a group of FOSS idealists who, for lack of a better term, I will call “hard core” FOSS advocates. I mean no disrespect by the term, in fact, I admire most groups who have strong ideals and work to achieve them. As folk-singer Arlo Guthrie says, “I’d rather have friends who care than friends who agree with me.”
The hard-core FOSS advocates would like to go directly from Stage 1 (Innovation) to Stage 6 (The FOSS Era) and skip the whole commercial part. They argue that proprietary software ownership is undesirable at best, and immoral or unethical at the worst.
But this ignores capitalism and human nature and the economic forces that help fund and drive the creative process in Western society. In spite of fundamental differences between software and brick-and-mortar industries, software follows the same first four phases of the lifecycle.
Capitalism has a way of getting things done, of bringing resources and energy to a problem quickly and efficiently. When there’s money to be made, capitalism can be a powerful, positive force. Investors pay handsomely, and innovators flourish in their pay. Capitalism fosters the basic competitive instincts of human nature.
Capitalism also encourages an odd sort of “collaboration”: Secrecy abounds, but innovation, once commercialized, spreads rapidly through the industry, sparking new levels of creativity and innovation. In addition, the profit motive encourages companies to “steal” one another’s key personnel, further fostering this strange collaboration.
At the same time, capitalism stifles software innovation. Each company wants to get the edge, the latest feature, the one innovation that everyone will need and only they can provide. To achieve this, commercial vendors are secretive, and go to great lengths to protect their ideas and innovations. More importantly, once they invent something useful, they often will attempt to block others from the new technology. They’ll use anything and everything to develop and keep a monopolistic position, including patents (sometimes absurd ones), highly-restrictive licensing agreements, lawsuits over alleged copyright infringement, employment contracts that turn employees into virtual indentured servants, and anything else they can think of to “protect their turf.”
It is this behavior that bothers FOSS advocates. Capitalism is a double-edged sword for software. It both fosters and stifles innovation and collaboration.
But wishing for the demise of the commercialization phase is like spitting into the proverbial hurricane. The hurricane doesn’t care, and you get spit in your face. Capitalism will continue to be a part of the software lifecycle as long as software is useful to society. In other words, Stages 2 through 4 of the software lifecycle are here to stay, and wishing it were otherwise isn’t going to change anything.
Before anyone jumps in with counter examples, let’s be quick to acknowledge that there are exceptions to the software lifecycle model. The two “corner cases” might be called the “FOSS corner” and the “commercial corner”.
In the FOSS corner is software that has no commercial viability. It is too specialized, and its market is too small, to attract investors. An example of this might be software used by physicists to calculate the properties of black holes and quasars.
And in the commercial corner is software that can never be FOSS. It might be encumbered by patents, or more likely, is sold as an adjunct to some piece of hardware, such as “embedded” software found in modern cars, printers, scanners, wrist watches, cell phones, and so forth.
But by and large, most software will go more-or-less through same first four steps as any new technology: Invention, Expansion and Innovation, Consolidation, and Maturity. Software is driven by the same well-understood principles of modern capitalism that drive any industry. We should not be surprised that software shares the same initial socioeconomic lifecycle as any other technology.
The Error of Commercial Enterprises
Some commercial software vendors wish FOSS would go away. They see FOSS as a threat to their existence, to their right to make a living, and to capitalism in general.
But, like the error of the “hard core” FOSS advocates, these vendors (that is, the people who run them) show a misunderstanding of the socioeconomic forces that govern the software lifecycle. Their “enemy”, the FOSS stage of the lifecycle, is just as inevitable as the expansion and maturity phases that they love so much.
As capitalists, they are missing opportunities. There is a place for profits at every phase of the software lifecycle. Companies that understand this can make money at any phase of the lifecycle. Companies that are in a “phase change” of a software technology can see the change coming, and adapt their business to the new situation.
Ignoring the reality of FOSS is a huge mistake. Wishing for it to disappear, or trying to fight it on legal fronts, is, well, like spitting into a hurricane. Or perhaps a more apt simile: It’s like trying to stop a glacier from moving.
As we’ve seen, any sufficiently mature technology, which is of interest to even a modest number of users, will inevitably give rise to a FOSS solution. It make take a month, it may take a decade, but the process is inexorable. First one user writes a handy little thing that does just one piece of the problem. Then someone improves it. Then someone writes another handy piece of code, then another. Then someone writes a nice framework that integrates these into something more useful than the individual utilities … and so on. Inch by inch, step by step, every single feature of the mature product will be encroached upon, until finally there is nothing that the FOSS version can’t do.
A company that sees this coming can rebuild itself from an innovator into a service and consultancy provider. A company that fights it can build itself a coffin.
Linux: Another Look at the Software Lifecycle
Let’s look at another interesting example of a software technology: Operating systems. They illustrate many of the points made above, but at the same time don’t fit neatly into the pattern. In spite of this messy fit, it reinforces the basic premise of this essay, that a given software technology follows a pretty well defined pattern.
Operating system history is quite different from the web-server history we analyzed above, for two reasons. First, there was little in the way of FOSS for most of the history of operating systems. And second, the history stretches about an order of magnitude longer.
The history of operating system also has a sort of “wheels within wheels” feel to it. The technology as a whole follows the software lifecycle that we’re discussing, but within it, there are sub-genres of operating systems (e.g. Unix, and the various personal-computer operating systems) that follow their own software lifecycle within the larger cycle. And the wheels-within-wheels goes even deeper: Within the Unix genre, sub-genres such as BSD and Minix had their own “mini software lifecycles.” But all of these wheels were rubbing against one another, eventually turning together as one big somewhat-coherent software lifecycle.
Stage 1: Invention
Prior to the advent of Unix, almost all operating systems fell into the category of “embedded software” that we discussed earlier. Every computer manufacturer had to write an operating system to go with their hardware. IBM had MVS, Burroughs had the Master Control Program, Digital had VMS, and so forth. This software was almost always written in assembly language, and because of the tight coupling between hardware and software, it was “outside” of the software lifecycle process.
Although the Invention phase of operating systems is in some ways spread from 1944 through the 1960’s, the real start of the invention phase for operating systems was the advent of Unix in 1969. In 1973, the kernel of Unix was rewritten in C, making it possible for the first time to run one operating system on many different hardware platform. Suddenly users weren’t stuck with “any color you like as long at it’s black.” That is, instead of using the operating system that came from the hardware manufacturer, they could opt to use Unix.
In other words, the “invention” was not the operating system itself, but rather the portable operating system. This freed the operating system from the category of “embedded software” and thus its lifecycle began.
Stage 2: Innovation and Expansion
The Innovation and Expansion phase began almost immediately. Besides being portable, Unix happened to be the best operating system invented to date. Its kernel, its unified file/IO system, its security model, and its “shell” were all major advances. Unix quickly pushed aside almost all other operating systems.
Expansion continued as Unix “forked” into many variants, some of which still compete with one another to this day. Innovation was rapid: New commands and utilities were added, and device drivers written. Major new capabilities such as networking, although separate technologies in their own right, became integral parts of the Unix operating system.
A noncommercial version, Berkeley Unix, became an important source of innovation (as well as the foundation for two of the most important commercial versions, Sun Solaris and HP-UX). Other noncommercial operating systems, such as Minix, were also important sources of innovation. However, unlike Apache in the web-server market, noncommercial operating systems never achieved a major fraction of the market during the Expansion and Innovation portion of the lifecycle of operating system technology.
The Expansion and Innovation phase was jolted, and the industry changed forever, by the advent of the personal computer. This spawned a series of “lesser” operating systems for products like the Apple computer, Commodore, Atari, and of course, the IBM PC and its clones. These operating systems were less capable than Unix, but they were also cheaper and more suited to the limited capabilities of the early personal computers. In the pre MS-DOS days, CP/M was one of the first portable operating systems for personal computers. Like Unix, this portability led a number of hardware manufacturers to choose CP/M as their operating systems.
The next big change in operating-system technology after Unix was the rise of the windows paradigm. In Unix, windows are not an integral part of the operating system itself, but they are so crucial to the success or failure of Unix that they might as well be considered as a unit. In other operating systems, such as Microsoft’s Windows and the Macintosh, the windows technology was eventually built into the operating system itself. The rise of windowing technology sparked another round of innovation and competition among operating systems.
Stage 3: Consolidation
The consolidation phase of operating systems was spread across a long period of time, and overlaps with the Innovation and Expansion phase. This is due to the “bumps” in the technology itself such as the advent of windowing, as well as the fact that operating systems cover a very broad spectrum of computers, from mainframes to laptops, and consolidation happened at different rates in different markets.
The consolidation phase of operating systems is somewhat clouded by the fact that most were still tied to specific manufacturer’s hardware. Commodore, Atari, Macintosh, VMS, and most others would only run on their manufacturer’s computers. CP/M and MS-DOS, and later Windows, were exceptions to this rule.
Nevertheless, the consolidation phase happened: Most of the operating systems disappeared. While inferior hardware surely contributed to the demise of some of the operating systems, it was mostly OS features and good marketing that drove the consolidation phase. In other words, even though many operating systems were “embedded” by being tied to particular hardware, they still competed against one another.
Stage 4: Maturity
The operating-system marketplace today is largely mature. We all know what to expect from our OS, including fundamental I/O and networking, security, windowing, multitasking, memory management, and so forth. All modern operating systems provide these services to varying degrees, and it is unlikely that anything radically new will be added to the list any time soon.
There is innovation, but it is incremental and slow-paced. New drivers and technology are occasionally added, as is support for high-end computing such as clustered systems and large multiple processor systems. But the pace of this effort is modest compared with the heady days of early Unix, or early windowing systems.
The market is dominated by just a few commercial players. Microsoft and Macintosh are the obvious ones at the personal-computer level, and in the high-end server market, Sun, Hewlett Packard, and IBM all sell variants of Unix.
Stage 5: FOSS Domination
Operating system technology is entering Stage 5 right now. Linux, while exceedingly popular, is a relative newcomer compared with systems like Windows or the variants of Unix sold by IBM, HP and Sun.
In spite of Linux’s newness, the transition into Stage 5 is rapidly gaining momentum. Just a few years ago Linux was a curiosity, a favorite of academics, hobbyists and hackers. Few serious IT department would run mission-critical software on Linux. They relied on commercially products, operating systems backed by big companies with huge R&D staffs and 24-hour support.
In just a few short years, the turnaround has been dramatic. Massive systems, critical to the survival of some of the biggest companies in the world, run on Linux. The internet itself is critically dependent on Linux (and vice versa). Supercomputers use Linux. Major vendors such as HP and IBM who have invested billions in their own versions of Unix now offer supported, tested versions of Linux on their hardware. It is likely that within a few more years, Linux will be the only significant variant of Unix remaining.
There are, as of this writing, two major holdouts against the dominance of the Gnu Linux FOSS operating system: Sun and Microsoft.
Sun’s case is interesting. Unlike HP and IBM, Sun has not embraced Linux. Instead, it is taking a, “If you can’t beat ’em, join ’em” approach by making Solaris itself a FOSS technology. They believe the superiority of Solaris will attract talent and users away from the Linux effort. They predict that this will ultimately build momentum, until Solaris displaces Linux altogether as the primary FOSS operating system.
This author predicts that the opposite will happen: Solaris has many excellent technological advantages over Linux, but rather than attracting developers to the unfamiliar Solaris OS, those developers will incorporate the Solaris technology into Linux. The end result will be a hybrid, a marriage of the best of Linux and Solaris, but it will be called Linux, not Solaris. Linux simply has too much momentum to be derailed by the upstart (to the FOSS community) Solaris.
Microsoft continues its predictable course, fighting FOSS every inch of the way. In many ways, it’s too late for them. Even if they suddenly understood the inevitability of FOSS dominance, and of Microsoft’s fading importance as an operating-system provider, their behavior has been such that the FOSS community would not welcome their participation. Microsoft’s Windows operating system will be important for a long time to come, but it will slowly but surely succumb to the inevitable success of Linux.
Stage 6: The FOSS Era
It is hard to say how far away The FOSS Era is for operating systems. There are many unpredictable factors currently developing, including antitrust lawsuits, changes to patent law, and Linux development efforts, that could radically alter the future. On top of that, another major innovation in operating-system technology could always throw another kink in the already-convoluted history of operating systems.
But in spite of these uncertainties, the FOSS era is inevitable for operating systems.
Commerce in a FOSS World
FOSS is not the end of the software business, any more than limited-length patents are the end of invention. An inventor has to move on to new things when the current project is no longer the cash cow it once was.
A software technology should be the same. Companies can work profitably at any stage of the software lifecycle, provided they understand it. There is big, fast money (accompanied by big risks) in the Invention and the Innovation / Expansion stages, and on through the Consolidation phase. There is steady, predictable money to be made in the Maturity phase. As the transition to FOSS begins, a company with foresight and a good reputation in the industry can make the transition from a software supplier to a service and support provider.
On the other hand, a software company that makes an enemy of the FOSS community prior to the FOSS stage will have little chance of surviving the transition from a software supplier (Maturity stage) to a service and support provider (FOSS Domination stage).
Investors have a similar challenge. They usually have a clear grasp of the investment opportunities when they see a new invention (stage 1). They fight fiercely through stages 2 and 3, then either take their profits or walk away empty handed by the time of the Maturity stage. But there are new opportunities at the start of stage 5 (FOSS Domination), as new demand for service and support are created. Several very large companies, including IBM and Hewlett Packard, as well as newcomers like the various Linux suppliers, have recognized this opportunity and done very well indeed.
Concluding Remarks
Free Open-Source Software is not the brainchild of latter-day hippies, nor is it the doom of Western commerce. Rather, it is a natural and inevitable evolutionary step in the lifecycle of a software technology.
By understanding the software lifecycle, FOSS proponents can better understand both the time and place for FOSS projects. FOSS efforts can be frustrating and unrewarding if attempted when a particular technology is moving fast and large amounts of capital are being invested. But when a technology matures, or when a technology is of no commercial interest, FOSS is a powerful tool that can bring the technology to the world for free. Free as in freedom, and free as in beer.
And similarly, by understanding the software lifecycle, software companies can avoid fighting a losing battle against FOSS. As a technology changes from proprietary to FOSS, a company can profit from its expertise in the technology, support the FOSS movement, and offer niche products, support and services that complement the FOSS effort. Software companies should not assume that their market will last forever. The more interesting and useful the technology is, the shorter the commercial phase. Instead of fighting it, move with it.
Acknowledgments
Inspiration for this article, as well as a huge amount of general background information about legal issues surrounding software and invention.
An interesting history of operating system, with all kinds of comparisons and charts.
http://www.w3.org/History.html
History of the world-wide web.
http://www.catb.org/~esr/writings/cathedral-bazaar/
The seminal Cathedral and the Bazaar essay by Eric S. Raymond.