Why Open Source?

What role does open source play in bringing affordable technology to evolving enterprises? We would like to cut through the hype of free software and get down to the bottom of why open source makes sense, when, and for whom.

The most celebrated success of open source is without doubt, the Linux operating system. But how many people are really using Linux? And how can / does it benefit us? We like the way Time O’Reilly asks in Open Source Paradigm Shift:

“How many of you use Linux?” I ask. Depending on the venue, 20-80% of the audience might raise its hands. “How many of you use Google?” Every hand in the room goes up. And the light begins to dawn. Every one of them uses Google’s massive complex of 100,000 Linux servers, but they were blinded to the answer by a mindset in which “the software you use” is defined as the software running on the computer in front of you. Most of the “killer apps” of the Internet, applications used by hundreds of millions of people, run on Linux or FreeBSD. But the operating system, as formerly defined, is to these applications only a component of a larger system. Their true platform is the Internet.

Without us realizing it, almost everyone is using Linux. You are using Linux right now if you are reading this post online (our servers are running Linux too). Like O’Reilly says, the true platform is the Internet. Software applications are moving out from the desktop and on to the Internet. O’Reilly also elaborates on the 3Cs that drive the move towards open source:

  • Commoditization of software
    Just as computer hardware has become a commodity by the open standards of the PC, been driven by the commoditization of the PC architecture, software growth will be driven by commoditizing the software architecture.

    Software commoditization has been driven by standards, in particular by the rise of communications-oriented systems such as the Internet, which depend on shared protocols, and define the interfaces and datatypes shared between cooperating components rather than the internals of those components. Such systems necessarily consist of replaceable parts. A web server such as Apache or Microsoft’s IIS, or browsers such as Internet Explorer, Netscape Navigator, or Mozilla, are all easily swappable, because in order to function, they must implement the HTTP protocol and the HTML data format. Sendmail can be replaced by Exim or Postfix or Microsoft Exchange because all must support email exchange protocols such as SMTP, POP and IMAP. Microsoft Outlook can easily be replaced by Eudora, or Pine, or Mozilla mail, or a web mail client such as Yahoo! Mail for the same reason.

    This commoditization of software converts the software as a product into software as a service. Users of software no longer need to purchase software licenses. They use the software as a service. O’Reilly quotes Clayton Christensen, the author of The Innovator’s Dilemma and The Innovator’s Solution:

    in this type of market, the drivers of success “become speed to market and the ability responsively and conveniently to give customers exactly what they need, when they need it.”

    There are now emerging leaders who have leveraged this business model of Application Service Providers such as salesforce.com, google.com, amazon.com, and scores of smaller local players, Reach1to1 being one of the emerging ones in India (could not resist that :-) )

  • Collaboration over networks
    Having the Internet as a platform for software provides another major network effect - of collaboration. Open Source projects depend largely on contributions by independant developers working collaboratively to enhance the value of the code. Services like eBay are intrinsically collaborative services (what’s the use of an auction if people cannot bid openly?) Others like Amazon have created a collaborative layer over the traditional product-selling model - by allowing user participation in the form of reviews, recommendations and a resellers program. Another interesting model is the one introduced by Napster for music and data sharing:

    Because Napster set its defaults to automatically share any music that was downloaded, every user automatically helped to build the value of the shared database. 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.

    We also note from our own experience that the most interest we generate from prospective clients for the software as a service model is where collaboration within a geographically disperse community is required - such as project management, sales force automation, channel integration and supplier integration.

  • Customizability of software
    This is, from our perspective, the largest factor that determines the neccessity of open source. Software is traditionally viewed as a product - something that is built once, and used repeatedly - with a few upgrades thrown in. However, applications in the new paradigm - like Yahoo, Google, Amazon or eBay, customization is an ongoing process of evolution. Similarly, for automating business processes of evolving enterprises, software is not a product that is built only once. Enterprises evolve by constantly fine-tuning their processes, products and services to match market dynamics. Software that empowers such businesses need to be agile and mimic the evolution. As O’Reilly puts it:

    We’re used to thinking of software as an artifact rather than a process. And to be sure, even in the new paradigm, there are software artifacts, programs and commodity components that must be engineered to exacting specifications because they will be used again and again. But it is in the area of software that is not commoditized, the “glue” that ties together components, the scripts for managing data and machines, and all the areas that need frequent change or rapid prototyping, that dynamic languages shine.

    It is this very property that prompted us to adopt Perl as our primary development language. The flexibility of Perl, combined with the plethora of open source modules available on CPAN, where any developer can publish modules that extend Perl, creates an ideal platform for creating agile software that needs to evolve continuously.

    Perl provides a component-based architecture with an ideal glue language, allowing us to write code that can be customized easily and continuously. To extend this flexibility to the data model, we have used Object Databases that allow databases to be customized as and when required.

In conclusion, the open source software paradigm provides an ideal platform for developing business applications for evolving enterprises that involve collaboration and constant customization.


About this entry