Thursday, May 26, 2005

Software Darwinism: Why Open Source is the New "Standard"

Traditionally, a "standard" is established when multiple vendors sell essentially the same technology and customers demand that this commoditized technology be accessed via a standard API. Vendors can then compete on implementation. J2EE is a prime example of the success of this approach.

Open source turns all of this on its head. If there are multiple implementations doing roughly the same thing behind the same API, why not simply collaborate on a SINGLE implementation? One or two best-of-breed implementations inevitably are settled on and everyone can move on and work on technology that has not been commoditized. We have seen this happen with operating systems (Linux) and web servers (Apache), and it will soon happen with databases and application servers.

Everyone wins with the open source approach: customers get better technology at lower cost, vendors do not waste brainpower replicating and maintaining commoditized technology, and developers can step through the source when there are problems.

Every time a model evolves there are stragglers, hybrids, and early adopters. An example of the hybrid model is Java. While Java itself is not released under an open source license, there has been a ton of open source innovation in Java, ranging from Struts to Ant to JUnit to Hibernate. Such hybrid models do cause strange occurrences, such as the JCP continually recreating existing and popular open source projects. A cleaner model, which IBM and many folks in the Java community are advocating, would be to open source Java and integrate leading projects such as Hibernate rather than recreating them.

In the early adopter LAMP stack, where everything is pure play open source, there are still a lot of balls in the air with competing projects, such as the zillion web server API's in Python that are finally coming under a single umbrella. Open source is the accelerated Darwinism of software components, where the strong survive and the weak die in the purgatory of one committer with zero download counts.

One thing is certain, open source is a meritocracy where the best-of-breed technology wins. As open source matures, it is now moving beyond replicating existing commoditized software to providing advanced technology beyond the apparent capabilities of the large software vendors. As we have learned time and time again (ie, AOL and CompuServe vs. the Internet), emergent behavior compounded with a network effect is the path to success.

Monday, May 02, 2005

Web 2.0 - Don't Try this at Work

One of the big drivers of Internet applications in the corporate world was the stark contrast of what people could do at home and at work:

At Home - Buy books, buy movie tickets, look up the weather, etc.

At Work - Call HR to change health plan, call factory floor to find out what happened to customer's order, call invoicing to find out what happened to a bill, etc.

Well clearly something at work was wrong, and soon enough everything was online. :)

Now look at the difference between home and work today:

At Home: Web applications are using JavaScript and DHTML to enhance the user experience and decrease server interactions. Some random guy can combine Google Maps and Craigslist apartment listings in a useful way without talking to either Google or Craigslist (

At Work: Everything has a Netscape 3 level of UI interactivity and nothing works with anything else.

This difference in functionality and the increasing expectations of users will lead to significant change in the enterprise. As more and more Web 2.0 applications deploy, pretty soon even the CEO will be saying "some random guy can get Google to work with Craigslist, and we can't get CRM to work with ERP?" Web 2.0 = SOA, and an enterprise's customers, employees and partners are going to expect it to happen ASAP.