Consulting Services >> Openource Systems >> Migration Consultancy

Open-source software is computer software whose source code is available under a copyright license that permits users to study, change, and improve the software, and to redistribute it in modified or unmodified form

The term "Open Source" was originally intended to be trademark able, however, the term was deemed too descriptive, so no trademark exists. The OSI would prefer that people treat Open Source as if it were a trademark, and use it only to describe software licensed under an OSI approved license. However, most writers use "open source" as a generic term rather than a trademark.

The Open-source software, started in 1985, intended the word 'free' to mean "free as in free speech" and not "free as in free beer." Since a great deal of free software already was (and still is) free of charge, such free software became associated with zero cost, which seemed anti-commercial.

Users should be treated as co-developers

The users are treated like co-developers and so they should have access to the source code of the software. Furthermore users are encouraged to submit additions to the software, code fixes for the software, bug reports, documentation etc. Having more co-developers increases the rate at which the software evolves. Linus's law states that, "Given enough eyeballs all bugs are shallow." This means that if many users view the source code they will eventually find all bugs and suggest how to fix them.

Early Releases

The first version of the software should be released as early as possible so as to increase one's chances of finding co-developers early.

Frequent Integration

New code should be integrated as often as possible so as to avoid the overhead of fixing a large number of bugs at the end of the project life cycle. Some Open Source projects have nightly builds where integration is done automatically on a daily basis.

Several Versions

There should be at least two versions of the software. There should be a bugger version with more features and a more stable version with fewer features. The buggy version (also called the development version) is for users who want the immediate use of the latest features, and are willing to accept the risk of using code that is not yet thoroughly tested. The users can then act as co-developers, reporting bugs and providing bug fixes. The stable version offers the users fewer bugs and fewer features.

High Modularization

The general structure of the software should be modular allowing for parallel development.

Dynamic decision making structure

There is a need for a decision making structure, whether formal or informal, that makes strategic decisions depending on changing user requirements and other factors.


Open source licenses define the privileges and restrictions a licensor must follow in order to use, modify or redistribute the open-source software. Open-source software includes software with source code in the public domain and software distributed under an open-source license.

Examples of open source licenses include Apache License, BSD license, GNU General Public License, GNU Lesser General Public License, MIT License, Eclipse Public License and Mozilla Public License.