Open source software is not always “cheaper” in the long run because it is “free”, but it can provide a distinct advantage for solving novel and unique problems.
However one must consider a variety of factors before utilizing open source software within new intellectual property concerns.
FALLACIES OF OPEN SOURCE
NO LICENSE OR MAINTENANCE FEES
WHY: Fees for commercial products can range from a few percentage points to as much as 20 points
TRUTH: Some open source does have “licensing fees”: * Commercial use * Documentation * Coherent software collection which is packaged consistently, with a nice installation
OPEN SOURCE MEANS LOWER IT COSTS
WHY: Often free to install
TRUTH: Often more expensive and time consuming to maintain
INSTALLATION AND CONFIGURATION COSTS
The price of commercial software is often offset by the implementation time required to fully deploy and configure an open source based system.
- Time consuming, especially for IT shops that lack skill depth in the tool
- Requires “fiddling”, especially more immature products
- Undocumented or edge case configuration discovered through:
- Trial and error
- Reading code
- Install optimized for IT using guided “wizard” installation
- Undocumented or edge case configuration discovered through:
- Comprehensive documentation
- Lengthy support calls or expensive engagements for services
- An organization’s skill level directly impacts time spent installing and configuring open source tools
- New or immature open source tools typically require extensive Internet research and trial and error
INTEGRATION AND CUSTOMIZATION COSTS
Commercial software provides features out of the box, open source requires more time, effort and IT staff skill to provide the desired integration into an existing IT system.
- Not optimized for integration in traditional and legacy IT infrastructure environments
- Require customization when project doesn’t meet requirements
- Grey area between a buy versus build:
- Is a decision not to buy, but to build as little as possible
- Lack of legacy IT integrations can exist for commercial products, early in life cycle
- Vendors productize and provide most common integrations, as product matures
- Open source customization requires skill development that must be trained or obtained through outside resource
- IT department must integrate and customize open source projects to work with traditional and legacy systems on their own, without support from vendor
THE COST OF NARROWNESS
Commercial software typically meets a set of common use cases and implementations that are supported. Open source software is community driven and meets needs as they arise, and remains flexible in end user implementations.
- Places the burden on IT department to:
- Develop, find, or train skills
- Evaluate, install, configure, operate, and support the software
- Allows extensive customization
- Provides a known set of features out of the box, for a given cost
- Customization is limited to a common set of needs or product roadmap
- Narrowness cost is evaluated by ultimate needs of the IT organization:
- If you do not need custom features, the cost is nearly zero
- If you require customized features, the cost will be very large
OPEN SOURCE LICENSING CONCERN
Using open source software can increase maintenance costs and legal liabilities depending on licensing arrangement.
When evaluating open source software one must consider that some open source licenses may impact the proprietary software and intellectual property assets of a company.
Distribution – Distribution of the code to third parties. This includes packaging libraries with binaries such as mobile apps
Private use – Internal use of modifications
Sublicensing – Can modified code can be re-licensed or must it retain the original license?
Copyleft – A product using this code must provide information necessary to reproduce and modify the work for all distributed binaries
Permissive – Allows developer to “do anything they want” with the code as long as they provide attribution and don’t hold author liable
GPL (GNU GENERAL PUBLIC LICENSE) * Considered “viral” * Any derivative work created which contains even the smallest portion of the previously GPL licensed software must also be licensed under the GPL license.
LGPL (GNU LESSER GENERAL PUBLIC LICENSE) * Requires software to be modifiable by end users via source code availability. * May be used for proprietary software, but must be packaged in a clear separation between the proprietary and LGPL components
AGPL (AFFERO GENERAL PUBLIC LICENSE) * Extension of the GPL that “closes the application service provider (ASP) loophole” * Requires full source be made available, even for web applications
APACHE LICENSE (2.0) * Does not require royalties * Does not require derivative works, or modifications to be distributed using the same license * Can be used in proprietary, commercial products * Compatible (maybe bundled) with GNU General Public License (GPL) * Not compatible with GPL versions 1 and 2
CONSIDERATIONS The Free Software Foundation (fsf.org) actively enforces the terms of GPL licensed code. In most cases they quietly ameliorate compliance problems by forcing violators to either pay a licensing fee, or releasing source code to the community. In rare cases, violators ends up in court.
PACKAGING OF GPL LIBRARY Hancom Office incorporated an open-source PDF interpreter in a word processor app and did not adhere to GNU General Public License (GPL). This could be resolved by:
Hancom open-sourcing the Word Processor code Pay a licensing fee to Artifex, the developer of the library
CUSTOMIZATION OF GPL CODE Panasonic Avionics monopolized an in-flight entertainment (IFE), a product derived from CoKinetic Systems open-source (IFE) software
CoKinetic is seeking compensatory damages for Panasonic’s GPL ongoing GPL breaches in excess of $100 million The complaint, filed in the Southern District of New York, demands a jury trial
FAILURE TO OPEN SOURCE CODE VMware combined proprietary source code with open-source code in its ESXi product line but has not released it publicly as required by the General Public License version 2 (GPLv2)