Top tips for selecting open source software
by Randy Metcalfe on 1 February 2004 , last updated
Introduction
Performance and reliability are very important criteria for selecting software. In most procurement exercises however, price is also a determining factor when comparing quotes from multiple vendors. Price comparisons do have a role, but usually not in terms of a simple comparison of purchase prices. Rather, price issues tend to arise when comparing total cost of ownership (TCO), which includes both the purchase price and ongoing costs for support (and licence renewal) over the real life span of the product.
Some frameworks have been developed to help those in IT procurement assess open source software. These can help determine the appropriateness of particular applications in specific situations, or to evaluate different open source products against one another. They are not so well suited for comparing open source software against proprietary alternatives. Examples of such frameworks include the Software Sustainability Maturity Model and the Open Source Maturity Model (OSMM).
The following topic areas are important when considering open source software:
- Reputation
- Does the software have a good reputation for performance and reliability? Here, word of mouth reports from people whose opinion you trust is often key. Some open source software has a very good reputation in the industry, e.g. Apache web server, GNU Compiler Collection (GCC), Linux, Samba etc. You should be comparing best of breed open source software against its proprietary peers. Discussing your plans with someone with experience of using open source software, and an awareness of the packages you are proposing to use, is vital.
- Ongoing effort
- Is there clear evidence of ongoing effort to develop the open source software you are considering? Has there been recent work to fix bugs and meet user needs? Active projects usually have regularly updated web pages and busy development email lists. They usually encourage the participation of those who use the software in its further development. If everything is quiet on the development front, it might be that work has been suspended or even stopped.
- Standards and interoperability
- Choose software which implements open standards. Interoperability with other software is an important way of getting more from your investment. Good software does not unnecessarily reinvent the wheel, or force you to learn new languages or complex data formats.
- Support (Community)
- Does the project have an active support community ready to answer your questions concerning deployment? Look at the project’s mailing list archive, if available. If you post a message to the list and receive a reasonably prompt and helpful reply, this may be a sign that there is an active community of users out there ready to help. Good practice suggests that if you wish to avail yourself of such support, you should also be willing to provide support for other members of the community when you are able.
- Support (Commercial)
- Third party commercial support is available from a diversity of companies, ranging from large corporations such as IBM and Red Hat, to specialist open source organizations such as Canonical and Sirius, to local firms and independent contractors.
- Version
- When was the last stable version of the software released? Virtually no software, proprietary or open source, is completely bug free. If there is an active development community, newly discovered bugs will be fixed and patches to the software or a new version will be released; for enterprise use, you need the most recent stable release of the software. There is, of course, always the option of fixing bugs yourself, since the source code of the software will be available to you. But that rather depends on your (or your team’s) skill set and time commitments.
- Version 1.0.
- In open source, there is no convention as to the significance of a 1.0 version number. A program with a version number below 1.0 may be suitable for production use. Conversely, a product with version number of 1.0 or above may not be. Criteria other than version number must be the guide here.
- Documentation
- Open source software projects may lag behind in their documentation for end users, but they are often better with their development documentation. You should be able to trace a clear history of bug fixes, feature changes, etc.
- Skill set
- Consider the skill set of yourself and your colleagues. Do you have the appropriate skills to deploy and maintain this software? If not, will you employ third party contractors or will you implement a training plan to match your skills to the task? Remember, this is not simply true for open source software, but also for proprietary software. These training costs should be included when comparing TCOs for different products.
- Project Development Model
- Open source development should not be chaotic, although it can sometimes look that way. An open source project should have a very clear development process that describes how contributions are made and how they are evaluated for inclusion. It should also describe how contributors investing considerable resource in customisations can become a part of, or influence, the project management. This is to reassure significant contributors that their contributions will remain valuable to them in the future. In some projects there is a formal structure governing this kind of development, in others the structure is fluid, in both cases the rules of engagement need to be clear.
- Licence
- Arguably, open source software is as much about the licence as it is about the development methodology. Read the licence. Recognised open source licences have well defined conditions for your contribution of code to the ongoing development of the software or the incorporation of the code into other packages. If you are not familiar with these licences or with the one used by the software you are considering, take the time to clarify conditions of use.
The document Decision factors for open source software procurement provides more detailed guidance in selecting and deploying open source in institutional or enterprise environments such as colleges and universities.
Further reading
Links:
- The Open Source Software Definition http://www.opensource.org/docs/definition.php Sets out the distribution terms for software to count as open source.
- The Free Software Definition http://www.gnu.org/philosophy/free-sw.html Clarifies the sense of free that relates to the freedom to run, distribute and change the software.
- The Cathedral and the Bazaar http://www.catb.org/~esr/writings/cathedral-bazaar/ This is the classic text on open source development methodologies.
- Open Sources: Voices from the Open Source Revolution http://www.oreilly.com/catalog/opensources/book/toc.html Essays from many of the important figures in the free software and open source movements.
- SourceForge.net http://sourceforge.net/ A repository of thousands of open source projects.
- Google Code http://code.google.com/projecthosting/ Another repository of open source projects.
- freshmeat.net http://freshmeat.net/ Announcements about new software releases.
- oss4lib http://www.oss4lib.org/ Open source systems for libraries.
Related information from OSS Watch:
- Open Source Options: Making use of the Cabinet Office guidance on Open Source Software
- Release management in open source software projects
- Software Sustainability Maturity Model
- Open Source for Absolute Beginners
- Open Source Development - An Introduction to Ownership and Licensing Issues
- Sustainable Open Source
- Decision factors for open source software procurement
Acknowledgement: This document is based on a briefing paper written by Randy Metcalfe of OSS Watch for QA Focus.The original briefing paper is available on the QA Focus website here http://www.ukoln.ac.uk/qa-focus/documents/briefings/briefing-60/html/.