These are software products available with its source code under an open-source license to study, change, and improve its design.
Examples of some popular open-source software products are Mozilla Firefox, Google Chromium, Android, LibreOffice and the VLC media player.
This kind of development method is, according to Raymond, like the building of a cathedral; central planning, tight organization and one process from start to finish.
The second is the progressive open-source development, which is more like "a great babbling bazaar of differing agendas and approaches out of which a coherent and stable system could seemingly emerge only by a succession of miracles."
Differences between the two styles of development, according to Bar and Fogel, are in general the handling (and creation) of bug reports and feature requests, and the constraints under which the programmers are working.
[2] In closed-source software development, the programmers are often spending a lot of time dealing with and creating bug reports, as well as handling feature requests.
The phases specified here are derived from Sharma et al.[3] A diagram displaying the process-data structure of open-source software development is shown on the right.
First, there is the garden variety of software programs and libraries, which consist of standalone pieces of code.
Examples of this type of project include the Linux kernel, the Firefox web browser and the LibreOffice office suite of tools.
This networking effect is essential according to Abrahamsson et al.: “if the introduced prototype gathers enough attention, it will gradually start to attract more and more developers”.
[5] Fuggetta[6] argues that “rapid prototyping, incremental and evolutionary development, spiral lifecycle, rapid application development, and, recently, extreme programming and the agile software process can be equally applied to proprietary and open source software”.
More generally, all Agile programming methods are applicable to open-source software development, because of their iterative and incremental character.
In order to communicate in real time, many projects use an instant messaging method such as IRC.
Web forums have recently become a common way for users to get help with problems they encounter when using an open-source product.
During early 2000s, Concurrent Versions System (CVS) was a prominent example of a source code collaboration tool being used in OSS projects.
[7] Many open-source projects are now using distributed revision control systems, which scale better than centralized repositories such as SVN and CVS.
Tinderbox enables participants in an OSS project to detect errors during system integration.