Rants
Questions
Soapbox
Best Practices
Apply today for a FREE subscription to CIO Magazine!
Thu, Jun 5, 2008 9:36 EDT

|
Posted by: Esther Schindler in Questions Topic: ArchitectureBlog: Executives Online
Current Rating: |
The history of the computer industry makes it clear: a pendulum swings back and forth between innovation (generally coming from relatively small, independent visionaries... which battle one another in the marketplace for which is "best") and standardization (during which period the market chooses its favored product/technology, vendors buy one another, and unsuccessful companies close). It's exciting to watch innovation, because people are trying hard to create the best solutions possible and you can choose the right product for your needs... but it's also confusing and scary, because you sometimes have to bet your own company on technology that won't be around for long. (DBase IV anyone?)
There's no reason for the open-source community to be immune from this cycle. (All you have to do is whisper, "Which is the best Linux distro?" into a crowded room of techies... watch the fur fly!)Are we still in the "surfiet of great choices" stage, or (with enterprise interest and acceptance) are we swinging more towards standardizaton? Is fragmentation a real problem, or just part of the cycle?
In other words: Which way is the open source market going?
From the rapid growth of project numbers on Sourceforge, it's clear that open source is in an expansionary mode, with no slowdown in sight.
However, in specific product categories, open source seems to demonstrate a 'winner-take-all' phenomenon, with a leader garnering a large majority of downloads, use, and community participants. This makes sense, as the most critical factor for the success of an open source product is the vibrancy of its community, so potential users within a category seek to identify the largest/most active community and join that. Network effects is the phrase often used to describe this.
There's no rule that there are not exceptions to, and open source does have categories that multiple products and vibrant communities co-exist. Databases and content management come to mind.
When new software is developed, traditional commercial environments mean if there is a market there will be competition. Open source is slightly different, when new software is developed, rather than setting up in competition, developers (in theory at least - there are always exceptions) will join the project and contribute – and if the project has a good attitude towards its community that project will grow successfully.
So what makes good project? A good open source project will encourage community growth, listen to the community and act upon the communities’ wishes; this helps to prevent forking and competition, it also encourages contribution. Companies concerned about fragmentation can influence things by becoming an active part of the community, influencing decisions in favour of that community. If a project makes community involvement difficult, or appears to take the “We know best” mentality at the expense of community requests, then try to avoid - or even fork the project and create a new all inclusive community to support the new branch.
I’ve used the word community a lot here – because it is a projects treatment of its community that will determine how fragmented things will or will not become.
Matthew Tomlinson
Founding Member: OpenQuote
Director: Applied Industrial Logic
Sponsor: OpenSourceInsurance.org
I agree with Bernard that we are still in the expansion/innovation stage.
The good news for users of open source software is that if they don't pick the right horse, the consequences are less severe than for a commercial application. If the original authors no longer want to maintain the open source code, or do so with minimal resources, the end users have the option of maintaining it themselves or in cooperation with others who are still using it, and they can hire outside consultants to help.
I agree with Bernard's point that we sometimes see a "winner takes all" effect with open source. If there's a new entrant into a category dominated by closed source vendors, developers (at least) typically welcome it. If there's a new entrant into a category with at least one strong open source player, developers often react negatively, questioning why the new alternative is necessary. This is both good and bad. It's good because without critical mass open source fragmentation IS a problem. It's bad because it can hinder innovation. If the "winner" is mediocre, it can become a real obstacle.
I think that Ira's point about the consequences of not picking the right horse being less severe with open source is of immense importance. Of course end users don't want to self support by choice (it's expensive), but at least they have the option. The ultimate insurance policy. This removes an obstacle to adoption of closed source software from small companies.
I believe fragmentation in open source will always follow a different pattern from the traditional one.
Most people recognize the fact that having a single open source option is not good, so a small number (2-5) of contenders is a good thing. You also have to accept that you need open source options for each standard and/or technology base. This leads to natural and healthy array of options.
Lets take workflow engines as an example. There are a number of current standards for defining workflows (BPEL, XPDL, Wf-XML, etc). Each of these formats has strengths and weaknesses and they appeal to different segments within the workflow domain. Then you need to consider that integrating a C++ work-flow engine into a Java application is not ideal. Developers can be very religious about the languages they use. From a community perspective an XPDL-based C++ workflow engine is not a competing alternative to a BPEL-based Java one. Assuming that at least 4 technologies are common (say C, C++, Java, PHP) we now have room for 24 different open source projects (3 standards x 4 technologies x 2+ options) before the space is even minimally populated let alone 'fragmented'. While it is true that SOA and ESB make integrating different technologies easier but that does not mean than an IT department wants to maintain and develop in multiple languages.
If you only look at high-level functionality, open source does seem to be fragmented and have too many overlapping projects. But in a technology-led decision most of the open source options are filtered out at the start based on 'fit' or 'suitability' of the underlying technology. What is left is a reasonable short-list. I think this will always be the case with open source.
The question of how many commercial open source companies any domain will sustain is entirely different.
James Dixon