Most open source software is developed in online communities. These communities are typically referred to as “open source software communities” or “OSS communities.” In OSS communities, the source code, which is the human-readable part of software, is treated as something that is open and that should be downloadable and modifiable to anyone who wishes to do so. The availability of the source code has enabled a practice of decentralized software development in which large numbers of people contribute time and effort. Communities like Linux and Apache, for instance, have been able to connect thousands of individual programmers and professional organizations (although most project communities remain relatively small). These people and organizations are not confined to certain geographical places; on the contrary, they come from literally all continents and they interact and collaborate virtually.
Key Terms in this Chapter
Mailing Lists: ools that are used to communicate ideas and concerns to others in the community.
Free Software: The term that is given to software in which the user has freedom to access the source code and modify it.
General Public License: (GPL) By far the most-frequently used license in OSS communities. The license is also one of the most restrictive forcing everyone to provide access to the source upon distributing a modified version of the software.
Developers: They perform many different tasks, like solving bugs, writing new source code and testing the software.
Open Source: A term that is in practice very similar to free software, but that intends to focus on the superior quality of the software and the effective and efficient processes that lead to its creation.
Libre Software: A term created to avoid the ambiguous term “free” and to emphasize the aspect of freedom that this type of software grants to its users.
Lesser General Public License: (LGPL) Similar to the General Public License. The difference is that the LGPL has no viral character, meaning that a program can include LGPL without having the entire program becoming LGPL.
Passive Users: They use the software and might find certain bugs but do not go so far as to write a bug report.
To-Do List: A list of requests that a certain number of users and developers would like to see included in a next version of the software.
Active Users: They perform fairly simple activities like reporting bugs and might even decide to fix the bug.
Bug-Report Systems: A system that can be used by users and developers of the software to report a bug (problem or flaw) in the software.
Versioning System: An automated system that allows remote access to source code and enables multiple developers to work on the same version of the source code simultaneously. Examples are CVS, SVN and BitKeeper.
Core Members and the Project Leader: Responsible for the biggest part of the lines of code. Research has shown that the top 15 developers in the Apache community wrote more than 80 percent of the Apache software.