As I’ve mentioned in an earlier post, I believe open source absolutely has a place in the enterprise; and that enterprises have some responsibility to contribute back (resources, code) to the open source community. Of course, on both ends, you need to be smart. Understand the implications of licensing, IP (yours and theirs), support (yours and theirs), code quality, security and stability, project adoption and longevity, and total cost – because nothing is really free.
In that same post, I also promised ‘more another time’. That time is now. Last week, I wrote an Open Source Considerations report for PSGroup. In the report description (and introduction), I state the following:
Since every enterprise is different, we believe it would be irresponsible to make blanket statements as to where you should, or shouldn’t, be using open source. Instead, in accordance with our standard research practices, in this report we provide insights on open source considerations for you to make informed decisions for your business.
With that, in this post, I’m excerpting those considerations. For the complete report (free), go here. Keep in mind there are some “no-brainer” uses of open source, in which case these considerations might be overkill. Again, you have to make the right call for your business. Examples of those are:
Using open source purely for R&D to get familiar with a new technology.
Open source projects which are de facto industry standards, such as Apache Web Server
Open source embedded in commercial products, such as Apache Axis.
Low-cost infrastructure (Web server, application server, and database) for development and initial test environments from well-established providers such as ObjectWeb, JBoss, and Apache.
Developer and administrator tooling (Eclipse, Perl, PHP) that stays within the enterprise.
Non-modified implementations of commercially-backed operating system distributions (Linux, Solaris 10).
The Excerpt: CONSIDERING OPEN SOURCE
What specifically should you be looking at, as you consider open source beyond the no-brainer uses? You need to look at three things: your project, the open source project, and your enterprise IT environment.
First, Your Project. Does Open Source Make Sense?
The Risk Factors. As with any IT project, you need to ask yourself the big questions. What is the purpose of this project? Does it provide strategic advantage? Does it provide core (critical path) processing? What are the service level requirements? What are the security requirements? What are the compliance requirements?
If your answers point to a high-risk project, then open source isn’t the right choice, especially for an initial foray. However, you still may find that components of the project fit in the no-brainer category. Remember, in a modular, service-oriented world, you don’t have to make all-or-nothing decisions.
License Restrictions. If your answers don’t scream risk, and the idea of an open source jumpstart (code base and low financial entry) is appealing, then you need to think about the license obligations you can live with. (The assumption here is that your project will modify, extend, or create a larger work from the open source code.) The questions: Will you be mixing proprietary and open source code in your solution? Will you implement any components outside of your walls? Is there a competitive risk to your business if your code is released to the community? If you answered “yes” to any of these questions, open source may still be an option, but GPL licensed code might not be.
Evaluation Framework. At this point, you’ve screened your project to determine if open source is a viable consideration. Now, you need to perform normal project activities to identify requirements, create an evaluation framework, and prepare a short list of candidates. For commercial products, PSGroup recommends (and produces) evaluation frameworks with the following six aspects:
Features and Functions
Design, Development, and Deployment
Management and Monitoring
For open source solutions, replace the last two aspects (product and company viability) with an open source project viability assessment, as described next.
Second, The Open Source Project. Is it Viable?
As mentioned earlier, most open source projects are not undertaken with the goal of enterprise consumption in mind. So, in your evaluation of the open source project, you need to think about how to resolve the gap between project and production-ready product. Typical items to be resolved are: documentation, installation scripts, product roadmap/evolution, patch and release management, systems management hooks, and problem/emergency support. These items might be resolved by the project community, by a commercially-oriented ecosystem, by your staff, or most likely, by a combination of all three.
Specifically, as you evaluate an open source project for viability, you need to get answers to the following:
Project Origin and Objective. Did this project evolve from a group of programmers solving a problem for themselves? Is this project an industry sponsored technology reference (or proof of concept) implementation? Is this project a welcome donation (Eclipse) of commercial software that will form a common foundation? Is this project a dump of commercial software, which has reached end of life?
Maturity. When was the project established? What is the current project release? What is the adoption rate? Is adoption building, level, or declining?
Backing. Is there money behind the project? How much, and from who? Who is the community host? Is the host credible?
Project Leadership. Who are the project leaders? What is their industry track record (open source, commercial, and/or enterprise)? Is the project well managed?
Community Engagement. Is there an active community of developers, testers, and end users? Are there forums, email lists, and FAQs? How often is the source code updated? Are bugs reported? Fixed?
Project to Product Gap. What is the gap? Does the project just consist of source code? Are there binaries and installation scripts? Is there documentation? Does the documentation cover the architecture, code, and/or end use? How often are patches released? Can patches be applied incrementally? How often are releases available? Is there a project roadmap? Are there administration scripts? Are there hooks for systems management? Is there a security model? Are there programming APIs?
Commercial Ecosystem.* Is there a commercial ecosystem––consulting, training, code validation, distribution management, support––for this project? Is it cost effective? Are the firms viable? Is the ecosystem expanding, level, declining?
Code Base. What language(s) are used? Are open standards used? How is the code quality? Is there a modular, extensible design? Is the architecture apparent? Are there APIs?
Testing Practices. How does the project test? Is it a formal process? Are testing assets distributed with the code base?
License. What license(s) is the project under? What are your rights and obligations? Are there dual license options (open source and commercial)?
Commercial Conflicts. Are there any commercial conflicts (the project, and/or your business)? Does the code base have a questionable history? Is there any pending litigation?
Competitors. Who competes with this project? Are the competitors open source? Commercial?
Chatter. What are people saying about the project? Check email lists, blogs, community boards, and trade press for participant (developer, end-user) and observer (press, analyst, competitor, partner) chatter.
Third, Your Enterprise. Is There a Fit? Is It the Best Fit?
In this last step, you need to determine if the viable open source project(s) are a good fit with your enterprise. While you are concerned with the normal factors of architectural, operational, organizational and budgetary fit, the lens is slightly different. Essentially, you are mixing buy and build models. There is the code base jumpstart of a commercial purchase, and the ongoing care and feeding of a build.
Could You Survive Alone? With this in mind, the first big question is, “If the community dried up, what would you do?” Can you support this software? Is that the best use of your resources? Would your business be at risk?
Can You Span the Gaps? Next, you need to address any gaps discovered between open source project and production-ready product. Does the investment (time, skills, people, and dollars) to close that gap fit your enterprise plan?
Are there opportunity costs? Are you willing to make a contribution (people, dollars, code) to the open source community to bridge this gap?
Do You Fit in the Open Source Community? Finally, you need to consider if your enterprise fits into the open source community. After all, they are doing the initial work! Are you willing to participate in the community, contribute to
the project’s evolution? Donate back some of the less cool, but very important, production readiness deliverables?
Best Fit? After determining the fit of the open source solution, you then need to weigh your options. Does an open source solution provide a better/worse fit and value against competing commercial and in-house build solutions?
As mentioned at the onset, there won’t be a single right answer. However, there will be a best answer for each business.
* Some big-name vendors––IBM, SAP, Novell, BEA—are participating in the commercial ecosystems for open source. There are also open source-specific providers such as RedHat, JBoss, SugarCRM, SpikeSource, and SourceLabs. As projects become popular, ecosystems are evolving to feed enterprise appetites. This burgeoning commercial market is particularly interesting to watch, given the roots of open source – individuals solving problems for their own benefit (use, challenge, education, community experience). [well, at least I find it particularly interesting…]