Free and open source software has had a major impact on the computer industry since the late 1990s and has changed the way software is perceived, developed and deployed in many areas. Free and open source technology or software, is typically developed in a collaborative fashion and the majority of contributors are volunteers. Even though this collaborative form of development has produced a significant body of software, the development process is often described as unstructured and unorganized.
This dissertation studies the FOSS phenomenon from a quality perspective and investigates where improvements to the development process are possible. In particular, the focus is on release management since this is concerned with the delivery of a high quality product to end-users. The biggest downside of closed source software is that you have no idea how it was made.
Open source technology is an often-misused term, it is not just a synonym for ‘free’. With the relatively recent rise of the internet and the human dependncy on the internet, the amount of new applications/software being developed has also risen. The most widely used operating system for smartphones, android is also a freeware. A lot of people contribute their work to the android market. Linux operating system was one of the famous software that was announced open source in the early days.
The Apache Software Foundation (ASF) is the world’s largest open source foundation. Some of the the world-famous software by ASF are Apache HTTP Server, Apache Hadoop, Apache Lucene, Apache OpenOffice and many more. The following are the highlights of the ASF’s contribution as listed on its website.
- 200M+ lines of code in stewardship
- 1,058,321,099 lines of code committed
- 3,022,836 code commits
- 730 individual ASF Members
- 7,000 Apache code committers
- All volunteer community
“As a non-profit corporation whose mission is to provide open source software for the public good at no cost, the Apache Software Foundation (ASF) ensures that all Apache projects provide both source and (when available) binary releases free of charge on our official Apache project download pages. Our corporate bylaws explicitly state that Apache projects create “open-source” software for distribution to the public at no charge. Apache projects will never charge a fee for downloading or using their software.” ~ The Apache
What is Open Source?
Open source technology is defined as the production and development philosophy of allowing end-users and developers to not only see the source code of software, but modify it as well.
Open source provides a transparent platform upon which anyone with the skills to do so can add to the development and production of the software either for release as a new incarnation of the software for others to use or for strictly in-house development only.
One issue that has come up repeatedly in open source has to do with the copyrights assigned to the original software and any modifications made to it. As outlined in most open source license agreements, ownership of the software can never transfer to anyone who modifies the software.
Most money made from open source software comes in the form of support for the software technology and its many additions, add-ons, and modifications that often ensue.
Need for Open Source
All software has source code. Open source software grants every user access to that code. Freedom means choice. Choice means power. That’s why we believe open source is inevitable. It returns control to the customer. You can see the code, change it, and learn from it. Bugs are found and fixed quickly. And when customers are unhappy with one vendor, they can choose another without overhauling their entire infrastructure. No more technology lock-in. No more monopolies.
In the proprietary model, development occurs within one company. Programmers write code, hide it behind binaries, and charge customers to use the software–then charge them more to fix it when it breaks. The problem worsens when you become tied to a company’s architecture, protocols, and file formats. Bruce Perens calls this the addiction model of software procurement. And we think a model that puts customers at such a fundamental disadvantage is conceptually broken.
Criteria for Open Source
A. Free Redistribution
The license shall not restrict any party from selling or giving away the software as a component of an aggregate software distribution containing programs from several different sources. The license shall not require a royalty or other fee for such sale.
B. Source Code
The program must include source code, and must allow distribution in source code as well as compiled form. Where some form of a product is not distributed with source code, there must be a well-publicized means of obtaining the source code for no more than a reasonable reproduction cost preferably, downloading via the Internet without charge. The source code must be the preferred form in which a programmer would modify the program. Deliberately obfuscated source code is not allowed. Intermediate forms such as the output of a preprocessor or translator are not allowed.
GitHub is the most famous and widely used version control system to modify, store and share the source code. GitHub offers unlimited private repositories to all plans, including free accounts. As per wiki, as of May 2019, GitHub reports having over 37 million users and more than 100 million repositories
C. Derived Works
The license must allow modifications and derived works, and must allow them to be distributed under the same terms as the license of the original software.
D. Integrity of The Author’s Source Code
The license may restrict source-code from being distributed in modified form only if the license allows the distribution of “patch files” with the source code for the purpose of modifying the program at build time. The license must explicitly permit distribution of software built from modified source code. The license may require derived works to carry a different name or version number from the original software.
E. No Discrimination Against Persons or Groups
The license must not discriminate against any person or group of persons.
F. No Discrimination Against Fields of Endeavor
The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research.
G. Distribution of License
The rights attached to the program must apply to all to whom the program is redistributed without the need for execution of an additional license by those parties.
H. License Must Not Restrict Other Software
The license must not place restrictions on other software that is distributed along with the licensed software. For example, the license must not insist that all other programs distributed on the same medium must be open-source software.
I. License Must Be Technology-Neutral
No provision of the license may be predicated on any individual technology or style of interface is not free in the sense that the end user can do whatever he/she wants to it including selling it.
Although open source software is often free to download and use, open source licenses rarely transfer any ownership of the software to the end user or developer. Open source is not limited to software. Open source philosophies have been applied to everything from medicine to soft drink formulas.
Open source is the collective power of many minds. It can grow to any extent as the demand grows.