Because most open source proponents are developers themselves, they tend to cast the adoption problem in terms of technical features. The theory goes: "once a product achieves a particular feature level, it will be rapidly adopted, because it is better". This view has a couple of problems, in that:
- it ignores switching costs entirely (both monetary and emotional); and,
- it assumes the open source product can provide every feature required by the market.
Looking at the open source deployment success stories, most back up this theory: Linux and Apache grew like crazy in green fields, they were rarely replacing existing systems, they were filling in gaps and providing new capability. Again, exceptions abound, but keep your eye on the larger picture.
Feature completeness is a different beast, and it is where open source has a hard time competing with proprietary. Once an organization has gotten over the switching hump, for whatever reason, they have to decide what to switch to. They tot up the lists of features they "need", and then put out a request to vendors to propose products that meet their list of needs.
Bzzt! Strike one for open source, there is no dedicated vendor! Which means either the organization themselves needs to take the initiative to bring open source to the table, or some other company who sees a side opportunity to make money has to bring it in.
Now they compare their feature "needs" with the products. Almost invariably, no product meets 100% of the needs, but that is OK, because vendors can provide a "roadmap" of future development, which hopefully covers their requirements.
Bzzt! Strike two for open source. Open source projects generally make no promises about particular features by particular dates. At best a wish list of future features ("subject to interest and time") is provided. So open source projects which provide only partial coverage of requirements are rejected. Do not pass go, do not collect any dollars.
The problem is that the technology evaluation and standardization process in many large organizations has been shaped over the years to optimally match the properties of the existing proprietary software market:
- products are provided "finished", for an up front purchase price;
- products are marketed by vendors, they do not exist in isolation;
- products are owned and supported by a single organization;
- the onus is on the vendor to supply most of the effort in proving the worth of the product ("respond to the following 256 categories in the Request for Proposals"), not the client to evaluate the product independently.
- products are only as good as the client makes them (through the strategic application of money or effort);
- great products must be sought out by the client;
- support may be provided by many vendors, or by the client itself, if their pockets are deep enough to hire a pool of expertise;
- the onus is on the client to evaluate the worth of the product.