21.08.2013 Views

Software Engineering for Students A Programming Approach

Software Engineering for Students A Programming Approach

Software Engineering for Students A Programming Approach

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

324 Chapter 25 ■ Open source software development<br />

a totally embracing ethic, increasing access to the practice of software development and<br />

also the resultant products.<br />

The philosophy of the FSF is that individual freedom should never be compromised<br />

and that all individual action should also benefit the wider community. There<strong>for</strong>e,<br />

whilst individual programmers are encouraged and admired, they are also expected to<br />

feed their findings and their skills back into the community of programmers to which<br />

they ultimately belong. This is done through the sharing of code and the distribution<br />

of good programming practice.<br />

The FSF is absolutely resolute in not allowing any proprietary software to be incorporated<br />

into their software and were integral in the creation of the GPL. All their products<br />

are covered under the GPL, and they are largely unaffiliated with larger software<br />

development companies.<br />

The Open Source Movement is spearheaded by Eric S. Raymond. Their emphasis is<br />

on the benefits of open source as a development approach, rather than the moral benefits<br />

that can be brought by using this approach. They stress that open source can produce<br />

higher-quality software than proprietary software.<br />

The OSM are more willing to collaborate with larger software companies, sometimes<br />

including developers of proprietary products. They wish to appeal to the business sector<br />

because this enables greater distribution of their product. However, unlike the FSF,<br />

greater use of their products is motivated primarily because of the quality, rather than<br />

because of the freeness of the software. Forming contracts with larger companies is one<br />

way of exposing OSM products to a larger potential market. However, it also means<br />

that the product must compete with other commercial package products.<br />

25.4 ● Techniques of open source development<br />

Despite the schism within open source in terms of ethics and philosophy, the development<br />

practices principally remain the same between the two.<br />

Within the open source development community, there is often no <strong>for</strong>mal mechanism<br />

<strong>for</strong> gathering initial user requirements. The process often consists of a software requirement<br />

that is instigated by a sole developer, with requests <strong>for</strong> collaboration, targeting the<br />

hacker community. The Internet facilitates communication between developers and also<br />

the distribution of source code, via the Web, File Transfer Sites and e-mail.<br />

The head developer specifies most requirements. Additional user requirements are<br />

either implemented by individual developers themselves via personal modification of<br />

the source code, or through a communal process known as “code <strong>for</strong>king”. Code <strong>for</strong>king<br />

occurs when the developer base has alternative requirements or conflicting ideas on<br />

how to implement a requirement. The code is seen to “<strong>for</strong>k” because it is split and each<br />

copy of the code is developed in parallel. After this split occurs, the code is irreconcilable<br />

and there<strong>for</strong>e two different products exist, both growing from the same base code.<br />

Each <strong>for</strong>k competes <strong>for</strong> developer attention, so that the most popular or the most reliable<br />

version survives.<br />

The code writing on an open source project is sustained through voluntary contributions.<br />

Developers are motivated by the enjoyment of programming, the belief in the

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!