I was in a meeting recently where someone said “Open source software is free like a free puppy is free.” While I’m a big fan of open source software, I also agree with this statement to some extent. Here are some of the reasons why:
- Open source software is typically licensed under a legally binding agreement that places certain requirements on the user or developer. This can be as simple as placing acknowledgements in the code and associated documentation, or it can require the developer to contribute all modifications back to the open source community. This is undesirable if those modifications include exclusive intellectual property or trade secrets.
- Open source software components used in larger systems still need to be integrated with one another to meet the system requirements. This can take a significant amount of planning and development, and can require modifications to the components.
- Software based on open source software still needs to be tested for its intended use and with real system data.
- Open source and systems based on open source need to be maintained. This can be costly if the open source components evolve in ways that are not compatible with how they are used in the developed system. This leaves the system with out-of-date components and could require customizations to meet evolving user needs.
- Most open source software comes without a warranty or a guaranteed mechanism for support and maintenance.
All of that said, open source is often a great starting point for a development project. The code is generally quite reliable as it’s been worked on by a number of developers working in different environments.
I’m currently seeing a number of projects that take existing open source components and integrate them together to meet specific project needs. The open source components have required little to no modification, eliminating licensing and intellectual property issues. The integrator provides the warranty, support, and maintenance that make the customer comfortable with the open source-based solution. The integrator is happy because he is applying his unique skills and expertise to build the components into a compelling, valuable solution. The customer is happy because he is getting what seems like a custom solution much more rapidly and at a lower cost than it would take to build a custom solution. I think this is a great application of open source in commercial environments.
So, to answer my own question, no open source is not really free software, even if you don’t pay for a license. That said, open source software is valuable software and often well worth the hidden costs of using it. That’s my opinion. What’s yours?