Ict@innovation: Free your IT Business in Africa/1-1

= Module 1.1 General FOSS Concepts =

Duration
1:15hrs

Delivery method
For instructional purpose, it is advised that trainers/lectures use “focus group discussion” as a major means of delivering this module. In addition lectures, presentations, and exercises are also suitable method of delivery for this module.

Introduction
Despite the widespread adoption and utilization of Free and Open Source Software (FOSS) in all sectors of life including education, software engineering and IT sectors, public administrations, and within business circles, there still remain widely held concepts or misconceptions of what FOSS is and what constitutes Open Source Software. The misconceptions, to a large extend, have hindered the adoption and have made it difficult for businesses to explain to customers the software and services they are 'selling' or offering is of good quality and may stand at par or even better than proprietary software. There are also confusions with regards to the terminology when different individuals and researchers use the same term to refer to the same concept. Thus, this module draws on existing research literature and narratives from websites and blogs as well as expert experience to offer prospective FOSS business entrepreneur a glimpse of what FOSS is and is not. Unearthing the misconceptions surrounding FOSS is crucial if one is to set up a business and train individuals on how to set-up a FOSS-based business.

The general concept behind Free/Libre and Open Source Software (FOSS) is that of improving the quality of access to computer programs. This includes providing a license that reduces limitations for the developer/user and also making the source code (human readable code) of software accessible to anyone who wants to obtain it. Binaries or executable (machine readable code) are also made available via the Internet and can be "freely" downloaded and used.

This means that FOSS can be shared, it can be studied, and it can be modified and adapted by anyone with the appropriate skills. However, this does not mean that FOSS has no owners. FOSS is protected by exactly the same copyright legislation that limits the possibilities of use of proprietary software. However, through FOSS's use licenses, the rights to use, share, study and modify the software are granted. An example of a free software license is the Gnu General Public License (GPL) that, on top of granting those freedoms, obliges any derivative works produced to keep the same license, and thus remain free.

Concepts and Terminology
In the literature, many terms are in use to describe the FOSS phenomenon. Notably, Free Software (FS), a term used by the Free Software Foundation (FSF) and Open Source Software (OSS) used by the Open Source Initiative (OSI).

The FSF approach emphasizes the philosophical/Ethical/Political argument around freedom. The FSF puts it thus:

"Free software is software that gives you the user the freedom to share, study and modify it. We call this free software because the user is free."

This idea is well captured in an article entitled "aligning the ideals of free software and free knowledge with the South African Freedom Charter" (Jolliffe R.M. 2006). The OSI approach is based largely on technical merit and business arguments around the speed of development, marketing and innovation. OSI puts it thus:

"Open source is a development method for software that harnesses the power of distributed peer review and transparency of process. The promise of open source is better quality, higher reliability, more flexibility, lower cost, and an end to predatory vendor lock-in."

In addition, other commonly used terms are Free and Open Source Software (FOSS) that tries to unify both the FSF and the OSI points of view, and Libre Software (LS), which tries to undo the ambiguity of the term "free". Henceforth, the terms Free/Libre/Open Source Software or FOSS and FOSS are accepted in this document to refer to users' freedom to use, modify, distribute, or even sell the software with little obligations as in proprietary or closed source software.

Sometimes proprietary-off-the-shelf (POTS) and commercial-off-the-shelf (COTS) are used to describe software agreements which restrict the use, modification, and redistribution without prior consent of the supplier.

Exploring the meaning of "free"
Doesn't "free" mean that I do not have to pay for the software?

No. The word "free" has two meanings in the English language.


 * The "free" in "free beer", which refers to zero cost.
 * The "free" in "free speech" and "free market", which refers to freedom.

The free in free software refers to the freedoms that we've talked about above that people have. There's nothing in the definition of free software that says that you cannot sell it to someone for a price. Indeed, there are companies whose entire business model is centered on collecting, compiling and selling free software. However, since someone to whom free software is licensed is free to sell or give it away in turn, you can easily download the software (and legally) from the Internet or other forges such as Sourceforge.net

As expressed by the “FOSS Concept Booklet “, when you hear of "free software", think of liberty, freedom, or even "free enterprise".

Well, what's not "free" about other kinds of software?

A lot of non-free software in the world today is not sold. From complex operating systems to tiny games or screen savers, the end users of the software have a license to use it under conditions laid out in an End User License Agreement (EULA). This agreement lists out the conditions under which the user can use the software -often restrictions are imposed on the use to which the software can be put. In almost all cases, users are explicitly prohibited from "taking the software apart" to study how it works, cannot modify or improve it, are only allowed to make a single copy of the software (for backup purposes) and are strictly prohibited from giving copies to other people.

'''Tip! Get more information from the FOSS concept booklet '''http://en.wikibooks.org/wiki/FOSS_Concept_Booklet

The Linux story
It is important to note that FOSS development did not begin with the inception of the Linux operating system, in 1991. Rather, the concept existed since the formation of SHARE - a working group set up to coordinate the programming work of the IBM 701. Furthermore, research and development (R&D) institutions such as university establishments always cherish the free sharing of knowledge and resource with colleagues. What brought Linux into prominence and made it possible can be attributed to four main factors:


 * The GNU General Public License (GNU GPL) allowed Linus Torvalds to use large chunk of the GNU system's code and modify it to run as a full functional operating system on his home PC. The GPL means that his operating system (Linux) is free for others to use, copy, modify, and distribute.
 * Torvalds had access to the Internet so that he could communicate and collaborate (via open source content management systems (CMS) - CVS) with others interested in his project.
 * Minimal resources. The Linux operating system was meant to run on computers with low resources or computing power. This means that it was within the reach of many other people to run and test the system. Had the Linux OS required supercomputing power, only few may have been involved in testing and improving the system.
 * Good management. Linus Torvald is well known for his software project management wittiness, earning him the name of benevolent dictator. He started developing the GNU Linux operating system and managed his work in such an open and collaborative manner that encouraged others to get involved in the effort for free. People joined the development on meritocracy bases, only judged by the quality of contribution and commitment to advance and evolve the Linux kernel for all others.

The Open Source Software development model: The Cathedral vs Bazaar
FOSS has fundamentally changed the way software is being developed, distributed, marketed, maintained, and supported (Sowe, et. al. 2007). For the first time, the Bazaar model provides software engineers an alternative to the Cathedral model or traditional way of developing closed source software. The Cathedral as opposed to the Bazaar model (Raymond, 1999) characterizes traditional software development. According to the Cathedral model, software development takes place in a centralized way, with well defined roles for each software development phase (from requirements analysis, design, implementation to testing and maintenance).

In the bazaar model, roles are not clearly defined and often software users are treated as co-developers. In FOSS, the software is usually released early and more frequently than in closed source software. As evidence of its efficacy, or the lack of it as demonstrated by a large number of 'unsuccessful' FOSS projects littered in many forges (eg. Sourceforge.net). The Bazaar model has produced a number of successful applications in the area of operating systems (GNU/Linux), sometimes described as distributions or distros (Ubuntu, Debian), emailing and web services (Sendmail, Apache, SeaMonkey), databases (MySQL, PostgreSQL), Instant Messaging (Kopete, Pidgin), Desktops environment (GNOME, KDE), Worldprocessing (KOffice, OpenOffice suite), etc. The Bazaar model of developing FOSS facilitates the creation, diffusion, and transformation of software knowledge at a rate unprecedented in the history of software development.

Characteristics of the FOSS development process
When a developer modifies open source software, she can either choose to keep changes made private or return them to the FOSS community so that everyone can benefit from her derived work. And from the business point of view, when a company posts back it's modification that could be used as a reference experience and in-direct unpaid marketing for a company, business or individual. When you post the modification they may be included in future releases which reduces the cost of maintenance and innovation. The cyclic nature of software source code acquisition, modification, distribution, and reacquisition is an important aspect of the FOSS development process. The figure below shows typical FOSS development (coding) activities with possible exits from the cycle.



Developers with access to the project's source code repository checkout code from the project repository to begin the software development activity. Some just acquire the source code and no longer take part in project activity (Exit 1). Many others continue the development process by modifying code, bug fixing and adding new functionalities. Developers dissatisfied with a project's development, or how it is managed and coordinated may exit the cycle with the modified code to start their own "mutant" version of the project in what is called forking (Exit 2). Fork is a competing project based on a version of the existing project's source code. Because of the open and easy access to the source code, every FOSS project is susceptible to forking. Cynical as it my sound, forking is healthy in FOSS as it may promote competition, and may even produce a superior software than the predecessor. The prospects for expert software developers and novice users to understand the code, software development process and communities are now great.

The debate: FOSS vs. Closed Source Software
The following table summarizes some of the characteristics of FOSS, giving the business view of Closed-Source Software versus F/OSS.

Some Myths about FOSS
As FOSS becomes more mainstream, transcending technological and geographical barriers so are the myths surrounding the FOSS concept and methodology. To many, it is incomprehensible how geographically distributed individuals can collaboratively and amicably produce or create goods and services in the form of software that is comparable or even better than the Commercial-Off-the- Self (COTS) proprietary software they are so accustom to. More enshrined in the myths of FOSS is how one can make money or generate revenue from something that is free. Further information on the ten commonly referred to myths in FOSS are available in O'reilly (1999). The table below summarizes some myths and facts about FOSS.

Examples of FOSS Software
The tables below provide some common examples of FOSS Software

a) List of FOSS Software that runs on Microsoft Windows, Gnu/Linux and, in some cases, Apple Max, Unix and BSD operating systems


 * Productivity based applications


 * Wordprocessing - Open Office - http://www.openoffice.org/
 * Publishing - Scribus - http://www.scribus.net/
 * PDF Creator - Pdfcreator - http://www.pdfforge.org/products/pdfcreator
 * Mail Client - Evolution – http://projects.gnome.org/evolution
 * Mind map - Freemind -http://freemind.sourceforge.net/wiki/index.php/Main_Page
 * Compression - 7Zip - http://www.7-zip.org/
 * Text editor - Notepat++, http://notepad-plus.sourceforge.net/uk/site.htm
 * Financial - GnuCash - http://www.gnucash.org/
 * Project management - OpenWorkBench - http://www.openworkbench.org/
 * Internet Based applications


 * FTP - FileZilla - http://filezilla-project.org/
 * Remote connection - Vinagre - http://projects.gnome.org/vinagre/
 * Web development


 * LAMP Stack - EasyPHP - http://www.easyphp.org
 * General purpose IDE platform - Eclipse - http://www.eclipse.org/
 * Web application development IDE - MonoDev - http://monodevelop.com/Main_Page
 * Multimedia and others


 * Image Editing - GIMP - http://www.gimp.org/
 * Audio Editor - Audacity - http://audacity.sourceforge.net/
 * CD Creator/Burner - Infra recorder- http://infrarecorder.org/
 * Image Viewer - http://imgv.sourceforge.net/
 * Video Editing - Kdenlive - http://kdenlive.org
 * Systems
 * Ghost - Ghost - http://www.fogproject.org/
 * Animal Care
 * Animal shelter manager - Animal Shelter Manager - http://sheltermanager.sourceforge.net

b) List of Web Based FOSS Software

Module 1.1: ASSESSMENT

 * Discussion 1: Discuss and list down as many words or phrases as possible which will best describe the concept of FOSS in your local language.
 * Discussion 2: Discuss and list down as many obstacles to the use of FOSS in your business organization.
 * Discussion 3: Discuss the concept of Forking in Open Source Software development.
 * Do you think forking is a healthy practice?
 * Get a participant to volunteer to tell a story of the evolution and structural organization of ONE Open Source project or community (For example, FreeBSD, MySQL, Apache, Ubuntu).
 * Debate: Form 2 groups to debate the topic “FOSS vs Closed Source Software”, stressing on the business implications.
 * Brain Storming: Divide the participants into small groups of 3-5 individuals. Each group should convince the other how FOSS can benefit them and why they should or should not use FOSS in their business.
 * Story telling: Get a participant to volunteer to tell a story of the evolution and structural organization of ONE Open Source project or community (For example, FreeBSD, MySQL, Apache, Ubuntu).
 * Assignment 1: Write a summary report of 150-350 words detailing the history of ONE open source project. Specifically, point out the successes and possible areas where the project might fail.
 * Assignment 2: List down the names of 3 organizations and 5 companies using FOSS in your country.
 * Assignment 3: List 5 commercial-off-the-shelf (COTS) software and their near FOSS equivalents
 * Assignment 4: Write a summary report of 150-350 words detailing the history of ONE open source project. Specifically, point out successful aspects and indicate possible areas where the project might fail.
 * Self-Assessment for students: State whether the following statements are true or false:


 * 1) FOSS doesn't cost anything (True / False)
 * 2) OSI stands for Ontario Swine Improvement (True / False)
 * 3) Free Software and Linux are the same thing (True / False)
 * 4) FOSS applications can be used on Windows (True / False)
 * 5) FOSS can help reduce vendor lock-in (True / False)