A few thousand years ago, someone famous said that between any 2 extremes, there lies a golden mean. It took a while, but we think we found what he was talking about with open source.

Trellon sees the immense value open source solutions can provide, and understands the challenges involved in deploying them within an organization. Understanding how to adapt open source projects and methodologies to the realities you face - and why you would want to - are key questions to consider when selecting a platform to use for web projects.

Open Source != Custom Development

A common misperception is that using open source software is the equivalent of initiating a custom development project and bears the same risks of project failure. This simply is not true.

Custom development projects carry inherent risks that are true for any project where something completely new is being built. Misunderstandings about functional requirements, a lack of buy in from stakeholders, poor coding practices, and other factors can lead to an end result which is defective in one or more ways. These problems are exacerbated by the up-front costs of scoping and ongoing monitoring that go into building something from scratch, which can become prohibitive for project sponsors lacking the organizational commitment to specify exactly what they are after. It is just hard work building something from scratch, despite developer's profound insights into a system's purpose and best intentions for delivering a quality product.

Working with a mature open source product means you are working with an established platform that has been vetted by thousands of end users before you even heard about it. The tasks involved in delivering solutions around these platforms differ from those of custom development in that programmers are chiefly concerned with configuring existing features and customizing specific aspects of the system to meet business needs. 60% to 80% of the work involved in delivering a solution is done using pre-existing, out-of-the-box code, leading to savings in terms of time and resources.

There are characteristic qualities of a mature open source product which allow companies like Trellon to deliver solutions based on them using rapid development methodologies. The existence of a reasonable application framework within the code, an active online community supporting the product, and a track record of successful implementations in recognizable organizations are just a few. Sourceforge and Ohloh are services which track activity around open source projects and can be used as part of a method for validating these characteristics, and it is good practice to work with a vendor with an understanding of the relative strengths and weaknesses of the nuanced details of each FOSS product.

No Vendor Lock In

The way organizations purchase products and services related to the Internet is changing. There are long term consequences to your choice that have implications on what you will be able to do now and in the future. Before you make a decision, it is important to understand what you are really paying for.

With a proprietary platform, a customer becomes dependent on a vendor for products and services, unable to use those of another vendor without encountering costs related to integration or switching platforms. These lock in costs sometimes become substantial, and can often become exploitive when leveraged to increase other costs through setup fees, annual licensing fees and per-seat licenses. The costs of lock in can also become a barrier to innovation. The Internet changes every day, and people locked into a given solution are limited to those features the vendor is able to support. This removes incentives to improve the business model in cases where the costs to innovate exceed those of the costs to maintain, and it leads to stagnation at multiple levels.

Open source products work differently. Because they operate on an open platform commonly understood by developers, customers can move freely from one vendor to another and expect to be supported. This creates an incentive for vendors to provide superior customer service and solutions. Open source projects also possess natural incentives to innovate as part of their core mission. As opposed to tacking on features here and there in the hopes of reinforcing an outdated business model, platforms like Drupal, CiviCRM, Apache, PHP and Linux lead the way in defining the expectations of users and the possibilities for their Internet experience.

Open Source, Open Standards and the Internet

People interact online though a growing number of mediums ranging from desktop computers, to mobile system and cell phones, to specialized Internet connected devices. Nothing is worse than being limited to a particular platform because of the way it presents information to users. Having systems in place capable of talking to all of them should be the expectation, not the exception.

Proprietary standards affect how media such as audio and video is distributed online, as well as the methods for accessing databases, file shares and other systems required to operate within a networked world. Users are unable to access information without a certain vendor's product in place, which tend to be limited to a single platform or only partially supported for platforms other than a main target. When a vendor stops supporting the product or service required to interact with the proprietary standard, users are suddenly forced to deal with obsolete systems which will require upgrades or replacement at some point in the future.

Open source standards and protocols ensure interoperability between devices. Information that is portable, can be consumed by multiple devices, and can operate without regard to operating system is more accessible and therefore more valuable to people on the Internet. Most open source solutions use portable standards for building systems, “making them talk” through the use of protocols like RSS, SOAP, REST-XML, Open ID, Ogg Vorbis, x284 and other open protocols for integration, compression / decompression and data portability. This is the way the Internet was designed to work - the HTTP protocol itself was built to allow information to be shared freely according to a common standard.

Support is the Key

A common perception about the benefits of working with a proprietary platform is that they generally offer superior support options. After all, a system is only useful if it actually works, and some organizations lose millions of dollars an hour when experiencing a system outage.

Commercial support is a line of business for most major platform vendors, no different than the systems they sell in terms of their goals for exploitation of the market. Support contracts are a way of exposing organizations to additional costs, sometimes at levels in exceeds of the original investment in the technology over the lifecycle of the systems they are intended to support. While necessary and often required for the successful operation of a specific platform, support options can quickly become a case of companies selling the sickness then bringing you back for the cure. Every developer knows there were more java books sold in the 1990s than there were systems using the technology, and the dizzying array of paid support options available on the market demonstrates how over commercialized this area of the technology world has become.

Support for open source products operates differently. Mature open source platforms generally have active community groups, forums, IRC channels and many other methods for discussing issues with thousands of other users. These serve as highly accessible areas to find advice and connect with qualified professionals. Commercial support options for open source applications have solidified as well, and are generally available at rates that are highly competitive compared with proprietary systems. Companies like Acquia offer fully supported distributions of Drupal that include uptime monitoring, knowledge bases and 24x7 support options at reasonable rates. Managed hosting providers like Rackspace have developed core competencies in hosting open source solutions based on years of experience with various platforms. Books are available for developers from major publishers covering everything from basic programming techniques to advanced topics dealing with multimedia and e-commerce. Training seminars for individuals and corporations are available, in some cases offering one on one workshops to teach sophisticated programming methods. Even our friends at Microsoft now distribute Drupal as part of an open source bundle.

...Oh Yeah, and There Are No Licensing Fees

With all of the other benefits mentioned above, we almost forgot to mention that open source software is free to use and there are no licensing fees associated with installing and configuring it on your servers. Admittedly, the word 'free' often comes with some stipulations regarding the way you can distribute modifications of the software, and it is important to understand your rights and responsibilities under the license for the particular platform you are using. But honestly, when you are getting something for free, isn't contributing back to the platform a small price to have to pay?

The open source model is built upon the idea that software should be free to modify and distribute, and it takes its strength from the principle that continual distributed improvement to the core platform results in a better product. This principle results in several long-term benefits to adopters that can be visualized as part of a larger cycle. By contributing improvements back to the platform, organizations using open source software increase the probability that it will be adopted by others who will contribute their own improvements. This cycle of indirect cooperation between developers, adopters, organizations and other stakeholders leads to increased value of the platform as it becomes gradually refined to meet general needs and takes on advanced features in response to edge cases. Contributions can be defined broadly to include feedback on features, case studies, bug fixes, production of original code and other methods of highlighting opportunities for increasing the value of the system as a whole. By using the product and contributing back in some form, organizations are investing the sustainability and health of the platform they have adopted and thus have a greater stake in its success.

There are drawbacks to the open source approach as well, but, compared with commercial products, whose fates are controlled by the whim of markets, and custom development solutions, where the loss of a single key person can have disastrous results, this system of platform development offers a superior long-term value proposition for organizations than alternative approaches.