Open source is a hot topic. Barely a day goes by without a major announcement in the computer press about open source: companies introducing new initiatives such as Sun releasing Solaris 10 as open source; established vendors ploughing huge amounts of resource into open source projects (e.g. IBM donating millions of dollars to the Eclipse project); and venture capitalists flocking to fund open source companies (e.g. SugarCRM, SpikeSource).
Many of the world's most successful companies attribute at least some of their success to open source software (OSS). Amazon runs on the open source Apache web server. Large parts of Yahoo! are built on Linux, FreeBSD and Apache, and written in PHP and Perl.
It's no coincidence that these successful companies use OSS. They have leveraged its flexibility to build bespoke systems at a fraction of what similar proprietary systems would have cost.
Amazon for example claimed a while back that using Linux cut their costs by about $17 million per year (25 per cent of its technology expenses).
Many UK businesses have also learned the same lessons, lowering costs and avoiding vendor lock-in.
According to a recent National Computing Centre report open source has already penetrated deep into many organizations: 41 per cent of the 143 organizations surveyed had already explicitly adopted some OSS in their operations and 73 per cent expected OSS to become more prevalent in their IT strategy over the next five years.
Even if you're not already one of these companies, you are in fact relying on open source every day: every time you use the internet your request is likely to rely on OSS (BIND) to reach its target host.
So open source is here to stay and is everywhere. How can your company get used to having it around?
Open source: the opportunities
For an IT company open source provides enormous opportunities. Many companies have already realized these benefits by using Linux servers to lower costs and increase reliability for back office deployments.
Going beyond this, in the following sections we give some examples of the areas where we see opportunities for IT companies looking to use OSS.
Providing low-cost services
The low price of open source makes it possible to realize the promise of the application service provider model.
This model has been around for a while but has never really delivered - until now. Because open source infrastructure is cheap (no licensing fees, either for the server or client access), readily available and massively scalable, it is possible to use it as a base for low-cost services delivered over the internet.
Many companies are taking this approach: 37signals, Friendster, Photobox and Evite are some successful examples. These companies are relying on a commodity market (lots of customers at low prices) to make their business pay off.
Often the foundation of these services is the LAMP (Linux, Apache, MySQL, PHP) stack, a solid bedrock for most kinds of web application.
If developing proprietary software you have to either write the code yourself or license the required code from a third party. Writing it takes time; sourcing it often means a licence fee each time the software is distributed to a client.
With open source there is a third option: source the code from the community. This way you can take advantage of the wealth of quality code that already exists.
In addition OSS will have been exercised more exhaustively than a single software company could ever manage. The old truism about 'many eyeballs make all bugs shallow' holds, at least in cases where the software is widely used, resulting in very high-quality software.
Just to give an idea, Linux was recently audited for bugs by Carnegie Mellon University. By contrast with proprietary software, which typically has 20–30 bugs per 1,000 lines of code, Linux was found to have a mere 0.17 bugs per 1,000 lines: slightly less than 1 per cent of the expected amount.
If you are going to use open source there are good and bad ways of going about it. It is a good idea to have a clear policy about how it is used. For example you could ensure that you have guidelines about where use of open source software is appropriate and where it is not, and perhaps a procedure for documenting use of open source within your products.
On the other hand it is a bad idea to allow your engineers to incorporate flaky, unmaintained software into important products willy-nilly. As a minimum you should have some mechanism for making and recording software assessments.
In the case of poorly maintained but promising software there is always the option to stabilize and maintain the software yourself: but you have to be clear about whether you want to take on this kind of role.
As well as being able to use existing open source components as part of your development process, open source also offers several high-quality development environments, languages and tools.
For example Eclipse is a very full-featured integrated development environment, heavily supported by IBM and used for their own internal development work. It is freely available as open source.
Languages like PHP, Python, Mono and Ruby have open source implementations, providing most (if not all) of the features of proprietary languages like Java and .NET at low cost.
Using OSS for your development provides some big benefits:
- Reliance on a vendor-specific development environment puts your fate in the hands of that vendor. If the vendor decides to up their prices or discontinue the tool, you either have to pay up or stick with the obsolete tool. With open source languages and tools you can be satisfied that they will be around for a long time in one form or another. If a tool was originated by a vendor but released as open source (as in the case of Eclipse), that vendor is unable to take that code back from the community due to the nature of the licence.
- There are no licensing fees attached to the tools. If you hire another developer you do not have to pay for their development environment; if developing in a proprietary environment the tools alone may cost anywhere between £300-1,500, depending on what developers need. Upgrades are similarly free of licences.
- Open source development tools are used by thousands of developers across the world, many of whom are very demanding users. The fact that the tools work for all of these people is good evidence that they are capable, usable and stable.
Approaching the future
Given these opportunities we can expect to see IT companies making increasing use of OSS. We can also make a few predictions about future trends in the industry more generally:
Use of open source will become more structured. So-called 'second generation' open source companies are emerging, providing standardized, integrated, certified stacks of OSS: for example Sourcelabs and SpikeSource are attempting to do this with LAMP. More end-user companies will look to this kind of service rather than doing their own homegrown integration work.
Frameworks for assessing open source are starting to emerge, such as the Business Readiness Rating championed by Intel, SpikeSource and O'Reilly. This framework specifies a ratings system for OSS across a wide range of features.
If it takes off it will provide a large pool of OSS assessments, usable by any company. This will mean that making decisions about the maturity of OSS will become far easier.
IT customer expectations will change as open source penetrates further. With OSS, easy testing of the full product without time limits, direct access to developers and visibility of all outstanding bugs are common features.
This is less the case with proprietary software. One thing we expect to see is the 'opening up' of proprietary software to these common open source development practices. We have already seen this happen with Microsoft Shared Source, though it doesn’t really go far enough.
Hopefully this shift will enable IT companies to reduce their emphasis on sales, letting quality engineering speak for itself instead.
OSS is gradually emerging into the mainstream, along with all the trappings of a mainstream movement: support organisations, business models, commodity products and so on.
Every IT organisation should at least investigate OSS as it has far-reaching implications for the whole industry.