Tim O’Reilly has an article “The Open Source Paradigm Shift” that expose the emerging trend in the software industry. He structures his thoughts around the paradigm shift that is open source, and how its an expression of three ongoing longer and deeper trends:
- The commoditization of software
- Network-enabled collaboration
- Software customizability (software as a service)
Modularization is a natural end result as a platform evolves, it makes sense that a monolithic structure is transformed to something that is more modular and malleable. The forces of the environment, that is the need for customization drives a platforms evolution. In the absence of progress, such a platform is replaced by one that is better adaptable to the enviroment.
An interesting observation by Christensen is that a profit opportunities usually emerge at an adjacent stage. However, I think Tim O’Reilly misintepretted Christensen’s Law of Conservation of Attractive Profits. He was arguing how the modularization of the IBM PC leads to attractive profits up the software stack. The proper interpretation would be that modularization allowed economies of scale effects to be leveraged. That is Microsoft need only to support one standard hardware platform to support hundreds of vendors rather than continue to build one-off solutions. The economic effect of modularization is not new, what is new is the observation that attractive profits can happen in the subsystems.
So, although O’Reilly may still be correct that software itself is “is no longer the primary locus of value”, he is incorrect in citing Christensen’s laws. Value in software swings from both extremes of providing better subsystems to providing better packaging of subsystems. The problem is that most people always think that making a profit requires building a better mouse trap. It’s rare that building a better mouse trap leads to profits, however its often the case that better packaging leads to profits. Just ask Red Hat, whose sole main contribution to the Linux world has been RPM. A means to package Linux applications in a standard and convenient way.
We can’t deny the advantages of network enabled collaboration. O’Reilly however is insightful in pointing out the “Architecture of Participation”. I’ve blogged about this before in “Does Your Language Support Communities?“. Highly successful open source projects tend to have a robust plugin framework. A plugin framework like that seen in JBoss, Eclipse, JEdit etc., makes it easier for a community to add new functionality. O’Reilly writes:
This architectural insight may actually be more central to the success of open source than the more frequently cited appeal to volunteerism. The architecture of Linux, the Internet, and the World Wide Web are such that users pursuing their own “selfish” interests build collective value as an automatic byproduct. In other words, these technologies demonstrate some of the same network effect as eBay and Napster, simply through the way that they have been designed.
That is just like eBay leverages networking effects, software should be architected to leverage the same effect. The conventional way for doing this is by providing a plugin architecture. In essence making your software more modular. Which of course, gets us back to the original point.
Modularization tends to place all participants in an equal playing field, however historically a small amount of participants tend to eventually monopolize the activities. This is a consequence of Pareto’s Distribution as discussed by “Wealth Distribution and the Role of Networks“. In other words, there’s simply no way of avoiding a small group of people controlling a disproportionate amount of resources.
In the space of blogging, where it appears that anyone can publish and there are almost no barries of entry, disproportionate distributions are the norm. Clay Shirky has arguments to support this. He points out that the inequality occurs because the human attention is a limited and scarce resource.
In other words, even in the world of open source, where everything is free. The winners will be those who can stir up the greatest amount of enthusiasm and therefore interest among its audience. Apache has done it for HTTP servers, PHP have done it for for Web Scripters, MySQL for Database folks and Eclipse has done it for IDE developers. The trend will continue for different niches like web browsers.
It’s important to remember the early failure of Mozilla was due to its lack of modularity. Mozilla’s successful future is tied around its ability to increase enthusiasm around its component model. Incidentally, this is the primary weakness of the OpenOffice project, that is a lack of enthusiasm for creating extensions despite the existence of a component model. My fearless prediction is that the Eclipse project will subsume OpenOffice(see: Lotus Workplace).
Now given the limited quantity of attention available for participants it would only make sense that the economic management of this resource would be of real value. In other words, if I can spend less time doing something, then the better. Could this be one of the causes of the recent upsurge of interest in the Mac OS X? That is, people are tired of spending time on operating system issues and have figured out a better use of their time.
It really doesn’t matter if something is free, because time isn’t free, the product that reduces the time need to achieve my goals will win out all the time. However, if you take a step back, isn’t this one of the main reasons why we buid software? That is, to lessen the amount of time spent on “menial” tasks? That is so that we can spend more time at play. This kind of sentiment is pointed out by Douglas Rushkoff who writes:
Kids are coming to believe that the person who takes responsibility for storing and maintaining the data is the one who deserves to be paid. And they’re smart enough, at any rate, to realize that it’s a job they don’t necessarily want to be charged with, themselves.
That is after a while the act of collecting or building a kernel gets to become pretty old quickly.
For developers, more open source projects mean more things to play with. More modular open source projects make the play more enjoyable. Which leads to increased enthusiasm and eventually more contributions. The reason why source needs to be open is that we haven’t yet figured out a more open way of allowing participation. The focus shouldn’t be place solely on the openess of the source, rather the focus is more appropriately placed on an “Architecture of Participation”.