Piracy wouldn’t be a problem; the thing required is the free and Open Source software development.

We need to develop a self supporting ecosystem of open source software’s, the first thing coming on to your mind must be what is open source S/W and what does it mean to be free.

What Does the Free and Open source S/W Aid’s?

The free and open source software (FOSS) approach lets communities of like-minded participants develop software systems and related artifacts that are shared freely instead of offered as closed-source commercial products.


Trying to get a the right angle of view to Understanding FOSS development practices:-

No prior model or globally accepted framework exists that defines how FOSS is developed in practice. The starting point is to investigate FOSS practices in different communities.

[A Fact:- Empirical studies of four distinct free and open source software development communities find at least five common types of development processes. These communities, particularly the computer game community, provide examples of common practices.]

Researchers are investigating at least four diverse FOSS communities through empirical studiesThese communities center on software development for Web and Internet infrastructure, computer games, software engineering design systems, and X-ray and deep space astronomy.

[A fact:- FOSS development communities don’t seem to readily adopt modern software engineering processes.]

FOSS community participants often play different roles, such as core developer, module owner, code contributor, code repository administrator, reviewer, or end user. They contribute software content (programs, artifacts, execution scripts, code reviews, comments, and so on) to Web sites in each community and communicate their content updates via online discussion forums, threaded email messages, and newsgroup postings.
In each of these four communities, participants occasionally publish online manuals, technical articles, or scholarly research papers about their software development efforts, which are then available for offline examination and review.

Each type content is publicly available data that can be collected, analyzed, and represented in narrative ethnographies, quantitative studies, or computational models of FOSS development processes. Significant examples of each kind of data have been collected, analyzed, and modeled.3–5

Let’s just take a look at FOSS development processes.

Unlike the software engineering world, FOSS development communities don’t seem to readily adopt modern software engineering processes. FOSS communities develop software that’s extremely valuable, generally reliable, globally distributed, made available for acquisition at little or no cost, and readily used in its associated community. So, what development processes are they routinely using and practicing?

From studies to date, they are employing at least five types of FOSS development processes. I’ll briefly describe each process in turn, but don’t construe any one as being independent or more important than the others. Furthermore, it appears that these processes occur concurrently, rather than strictly ordered as in a traditional life-cycle model or partially ordered as in a spiral process model.

The processes are:-

1). Requirements analysis and specification
Software requirements analysis helps identify the problems a software system should address and the form solutions might take. Requirements specification identifies an initial mapping of problems to system-based solutions.
In FOSS development, how does requirements analysis occur, and where and how are requirements specifications described?


Figure 1. Computergame software requirements specified as retrospectively asserted features.
(figure courtesy of www. bnetd.org, July 2002)



2). Coordinated version control, system build, and staged incremental release-review

Software version control tools such as the Concurrent Versions System—a FOSS system and document base10—are widely used in FOSS communities. Figure 2 shows one such FOSS repository on the Web.


Figure 2. A view into a Web-accessible CVS (Concurrent Versions System) configuration archive of software source code files for the game Quake.
(figure courtesy of the Quake- Forge Project)




3).Maintenance as evolutionary redevelopment, reinvention, and revitalization


Software maintenance—adding and subtracting system functionality, debugging, restructuring, tuning, conversion (for example, internationalization), and migration across platforms—is a widespread, recurring process in FOSS development communities.

Closed-source software systems thought to be dead or beyond their useful product life or maintenance period may be revitalized through redistributing and opening their source code.
4). Project management and career development

FOSS development teams can take the organizational form of interlinked layered meritocracies operating as a dynamically organized but loosely coupled virtual enterprise.13 A layered meritocracy9 is a hierarchical organizational
form that centralizes and concentrates certain kinds of authority, trust, and respect
for experience and accomplishment within the team.

Figure 3. A layered meritocracy and role hierarchy.


Figure 3 illustrates the form of a meritocracy common to many FOSS projects.4 In this form, software development work appears to be logically centralized while physically distributed in an autonomous and decentralized manner.13 However, it’s neither simply a “cathedral” nor a “bazaar.”1 Instead, when layered meritocracy operates as a virtual enterprise, it relies on virtual project management to mobilize, coordinate, control, build, and assure the quality of FOSS development activities.

Figure 4. A description of how a FOSS computer game development
project organizes and manages itself.

Project participants higher up in the meritocracy have greater perceived authority than those lower down. But these relationships are only effective if everyone agrees on their makeup and legitimacy. Administrative or coordination conflicts that can’t be resolved can end up either splitting or forking a new system version.

FOSS developers have complex motives for being willing to allocate their time, skill, and effort to their systems’ ongoing evolution. They might simply think the work is fun, personally rewarding, or a means to exercise and improve their technical competence in a way that they can’t in their formal jobs or fields.6 In FOSS computer game communities, “people even get hired for doing these things,” as Figure 5 shows.

5).Software technology transfer and licensing

Software technology transfer is an important and often neglected process in the academic software engineering community. However, the diffusion, adoption, installation, and routine use of FOSS software systems and their Web-based assets are central to the systems’ ongoing evolution. You can build these Web sites using FOSS content management systems (such as PhP-Nuke) and serve them using FOSS Web servers (Apache), database systems (MySQL), or application servers (JBoss).


FOSS systems, development assets, tools, and project Web sites serve as a venue for socializing, building relationships and trust, sharing, and learning with others. Some open source software projects have made developing such social relationships their primary project goal. Figure 6 shows such a system, in which developers took an existing networked game system and created an open source game mod that transformed it into a venue for social activity. Many contemporary visual artists are also creating game modes as the basis for new art works (see examples at selectparks).

The FOSS evolutionary development awaits.

Free and open source software development practices give rise to a new view of how complex software systems can be constructed, deployed, and evolved. FOSS projects don’t adhere to traditional software engineering life-cycle principles from modern textbooks. They rely on lean electronic communication media, virtual project management, and version management mechanisms to coordinate globally dispersed development efforts. They co-evolve with their development communities, which reinvent and transfer software technologies as part of their teambuilding process. Practices to propagate FOSS technology and culture are intertwined and mutually situated to benefit motivated participants and contributors. So, software engineering managers and developers working in traditional proprietary, closed-source, centrally managed, and collocated software development centers might recognize that viable alternatives exist to the practices and principles they’ve been following. These FOSS processes offer new directions for developing complex software systems.