This book is a long and thorough answer to the question, is open source right for you? The intended audience is the typical Information Technology (IT) department that is charged with supporting a business with appropriate application of technology. This book is written from an IT department’s perspective and is organized around the common problems that face those who struggle in the trenches. The goal of Open Source for the Enterprise is to help technology and business executives determine whether they can benefit from using open source in their environments.
Open source began as free software built by thousands of volunteers who shared the results of their work without charging any fees. Billions of dollars of value has been created based on this simple structure. The adoption of open source software has become a cultural phenomenon. The basic facts regarding the growth of the open source movement are amazing.
Open source success stories are well known and more arise every week. For instance, the city of Munich chose OpenOffice.org, an open source suite of desktop applications, very publicly sticking a finger in the eye of Microsoft, which aggressively sought the contract. Amazon.com dumped Sun hardware and software in favor of Linux, the most popular open source operating system available. Apache, an open source web server architecture, is the most popular web server in the world. Perl, a robust scripting language, is used to run huge, highly scalable sites such as Ticketmaster. Large financial companies are creating massive clusters of Linux machines for crunching numbers in complex portfolio analysis. This is just the tip of the iceberg. The examples of corporate success for open source would fill a phone book.
Internationally, open source is being adopted by entire governments. Smaller communities are using it to create versions for their specific languages. China, Brazil, Thailand, Peru—are all adopting open source software officially and are spending millions to improve the software and encourage its adoption.
All of this success has changed the nature of open source. No longer can one assume that the typical open source project comprises a small band of programmers toiling away in obscurity. Major technology vendors got open source religion and made broad and long-term commitments to open source software. IBM released as open source its Eclipse platform for creating development tools, a project on which it spent $40 million. IBM has become the largest corporate proponent of Linux, and it spends hundreds of millions of dollars to support and market that platform. Hewlett-Packard uses open source in all sorts of ways, from supporting development of useful projects to releasing device drivers into the marketplace. Novell has purchased several major open source-related companies, and is creating a large and integrated collection of open source applications for enterprise use. Nearly every important enterprise-grade software product has support for Linux. Even commercial web servers based on Apache are available, including Hewlett-Packard’s Secure Web Server for OpenVMS.
Companies large and small have taken to open source as a way to increase collaboration, reduce development costs, provide a friendly platform for their products, and sell services.
For an IT department, the stakes can be high. Becoming the sort of IT department that can successfully use open source means empowerment, saving hard dollars and ensuring freedom from captivity to vendors. Other significant benefits include:
Saving money on license fees
Reducing support costs
Reducing integration costs
Avoiding vendor lock-in and gaining power in negotiations
Gaining access to the functionality of thousands of programs
Improving the value of IT to your business
But gaining these benefits comes with responsibilities. Installing open source does not mean all your problems are solved. To use open source and support it in a commercial environment, IT departments must learn to:
Develop and maintain skills required to install and configure open source
Increase their software development skills
Become experts in evaluating the maturity of open source
Improve their understanding of the technology requirements of the business
Understand and manage open source licensing issues, especially if their company distributes software applications
One way of looking at this book is as a tour of the benefits and responsibilities of using open source. The opportunity provided by open source is too large to ignore for any organization that seeks to support its operations with software.
The scope of open source has grown beyond basic development tools to become a top-to-bottom infrastructure for computing of all stripes, including development environments, databases, operating systems, web servers, application servers, and utilities for all types of data center management. Open source now encompasses a huge variety of end-user applications, such enterprise applications as Enterprise Resource Planning (ERP) and Customer Relationship Management (CRM), tools such as portals and data warehouses, and integration tools for messaging as well as for web services. All of these can be the foundation of the sort of automation and productivity gains that can lead to a company’s competitive advantage.
But in most organizations, discussing open source brings up strong opinions on all sides that obscure pragmatic analysis of the key question: can you use open source profitably at your organization?
There is no simple answer to this question. People on both sides have good points to make and are also protecting their own interests. At its worst, the debate becomes a cartoonish farce.
Programmers, systems administrators, and other technologists who are fascinated by various open source programs might tout the fact that the software is free. While this is true, managers sometimes suspect a hidden agenda of seeking more cool toys to play with, without adequate consideration of the other costs that are incurred when using any piece of software, including the costs of evaluation, testing, installation, configuration, customization, upgrades, operations, and support.
Managers frequently take the opposite position, that open source is not worth considering because it can lack features of commercial software such as support and maintenance services, installation scripts, and documentation. For good reasons, managers like the idea of one throat to choke if something goes wrong. It is a remedy for the finger pointing that characterizes all commercial technology support in multivendor installations. But hiding behind this objection ignores the fact that technologists at tens of thousands of companies have proved that the risks and responsibilities of using open source are manageable.
One ideal that is rarely achieved is to merge the creativity and technical brilliance of the open source world with the operational discipline and process of IT. But the two sides look at each other with disdain. The open source experts look at IT and see a massive skills gap: what is so hard about picking up and maintaining the skills needed to use open source? The IT professionals look at open source software and frequently see a productization gap because of half-finished products: what is so hard about finishing all the administrative interfaces, configuration tools, Application Programming Interfaces (APIs), and documentation to make the software useful?
Both the skills and the productization gaps represent real challenges to wider adoption of open source. Organizations that can learn to overcome the skills and productization gaps and put open source to work will have an edge in terms of cost and flexibility over those that cannot.
Fortunately, the debate has moved out of the cartoonish phase, and many organizations are now taking up the real job of analyzing what kind of company they want to be, what their long-term needs are, and whether open source can play some sort of role.
The prudent course is to choose carefully when to use open source, based on a thorough understanding of what is involved. This book won’t answer every question for every different type of project. But it will show you how to evaluate open source software for common scenarios, and it will teach you how to get the answers to commonly asked questions and communicate them to others.