Rather than focus on the process steps of developing software this article will focus on the two different concepts for software development, proprietary and community developed. Since the introduction of the world wide web the way we communicate has changed and has offered a natural platform to encourage alternative models of development.
The concept of developing proprietary software is a traditional ownership concept. A software company employs personnel to develop, test, market and support their product. As the owners of the company have taken the financial risk then they want to protect their investment with Copyright and licenses to protect their intellectual property.
The Open Source concept retains the ownership of the Copyright to the community at large and is also referred to as Copyleft, as left in place. Initially an open source project is started by an individual or group that have an application that they created. Commonly the project is hosted on the internet, either on a site dedicated to open source projects, or on its own dedicated website.
Commonly on the hosting site for an open source project there are details of how to download the source code, and if applicable an executable package for the application, details of the license and details of how you can contribute and be involved in the project. Commonly with open source anyone can download, use and modify the code of the application, however it is usual that any modification made to the application is bound by the same license as the original. This is to prevent someone from taking the work of others, making a few modifications and calling it their own.
Open source can produce desirable and efficient applications. Rather than being dependent on employed staff, the programmers, developers, testers and document writers all volunteer their services as they have an interest in seeing the project thrive. There are many reasons why a software developer starts up an open source project, these include not having the finance or skills to develop the project independently, or wanting the input of their peers to bring new ideas and life to a project.
Similarly there are numerous reasons why people join an open source project rather than to just download and use an application without making a contribution. Some use the application and want to make it better. Developers are happy to return an intellectual contribution to the project knowing the Copy remains with the community. Larger projects have excellent active forums that offers support and a platform to debate development of an application. I know from my own view I am less likely to make free contributions of ideas to projects where the intellectual property is owned by a company.
An example of an os application in action is http://www.thenurseryshop.com that is modified from the e-commerce application OpenCart. Many of the modifications made were returned to the OpenCart community. In turn these contributions are queried by other developers who suggest or take on changes to the code or functionality to further evolve the application and diversify its usefulness.
For more details of defining open source and the types of licenses available please visit http://www.opensource.org.
Author: Peter Finnegan