Personal tools
You are here: Home Knowledge Business Center Free Software Development Process
Document Actions

Free Software Development Process

by admin_jr last modified 2003-12-01 09:52

Open Source software as a development methodology has the potential to alter the whole approach to making software resulting in more reliable products and faster and leaner development.

The theoretical process is explain by Eric Raymond in The Cathedral and the Bazaar and in Homesteading the Noosphere

The base of this method is a collaborative work, over the Internet, on the source of the software. Source changes are usually submitted as patch files to the developers' mailing list. Some developers usually manually apply them and test on their own systems. If the core developers approve it, the patch is then eventually committed to the source repository CVS, now a de-facto standard version control system.

Lists are for most projects automatically archived and available on-line with basic reply-threading and for hypertext browsing. Most of the time, a bug-report mailing list is used as a bug-tracking system.

Some Open Sources projects

There are thousands of open-source projects currently in progress. The ones included in this section are just a selection of those which are most notable for their influence, size, and success. Two projects we present here in more detail are the Linux kernel and the Apache Web server.

Linux

Linux is arguably the most well-known Open Source project today. It is a Unix-type operating system kernel which aims for a complete implementation of the POSIX specification, with SYS V and BSD extensions. From a humble beginning in 1991 as a hobby project of Linus Torvalds, then a student at University of Helsinki, Linux has over the years grown both in popularity and capability. It has evolved from a mere 10,000 line kernel to a full-featured modern OS with more than 2 million lines of code. Its user community has blossomed from fewer than 100 users in 1991 to more than 20 million in 2001. After quietly gaining popularity over the years in the academia, Internet service providers, and scientific researchers, Linux has recently broken into the media limelight and was featured on mainstream and business-oriented newspapers, radio, and TV programs. Linux is the force behind Deja.com, eBay, and many NASA servers.

The Apache Web Server

The Apache Web server originated in the early 1995 as a set of patches to the then-popular HTTP server from NCSA (hence the name, ''A PAtCHy server''). These patches were collected by a group of volunteers from contributions from Webmasters frustrated by NCSA's lack of further development and then released back to the Web community. The patches were a big success, and soon the group moved on to a complete overhaul and redesign of the server: Apache 1.0 was released to the general public on 1 December 1995 and went on its march to the Web server market domination. According to Netcraft survey, 54% of Web servers run Apache in February 1999 and 62% in April 2001.

Other significant Open Source projects are listed below :

  • GNU The GNU Project was launched in 1984 to develop a complete Unix-like operating system which is free software: the GNU system.
  • Gnome The GNOME project has built a complete free and easy-to-use desktop environment for the user, as well as a powerful application framework for the software developer. GNOME is part of the GNU project, and is free software (some times referred to as open source software.) GNOME is included in pretty much every BSD and GNU/Linux distribution and works on many other Unix systems.
  • Mozilla Mozilla is an open-source web browser, designed for standards compliance, performance and portability.
  • KDE KDE is a powerful Open Source graphical desktop environment for Unix workstations. It combines ease of use, contemporary functionality, and outstanding graphical design with the technological superiority of the Unix operating system.
  • Perl Perl, created, written, developed, and maintained by Larry Wall (lwall@netlabs.com), is a language for processing text. With its sophisticated pattern matching capabilities, straightforward I/O, and flexible syntax, Perl has become the language of choice for many I/O, file processing and management, process management, database access, graphical programming, networking, and world wide web programming and system administration tasks.
  • Python Python is an interpreted, interactive, object-oriented programming language. It incorporates modules, exceptions, dynamic typing, very high level dynamic data types, and classes. Python combines remarkable power with very clear syntax. It has interfaces to many system calls and libraries, as well as to various window systems, and is extensible in C or C++. It is also usable as an extension language for applications that need a programmable interface. Finally, Python is portable: it runs on many brands of UNIX, on the Mac, and on PCs under MS-DOS, Windows, Windows NT, and OS/2.
  • PHP PHP is a server-side, cross-platform, HTML embedded scripting language.
  • Wine Wine is an implementation of the Windows 3.x and Win32 APIs on top of X and Unix.

Main Open Sources tools

Here is a list of the main tools used by the community for develop Open Source:

Collaborative software developement

The collaborative method used in Open Source development, as described in The Cathedral and the Bazaar, has given birth to specialized Web sites which provide a systematic framework for collaborative Open Source software development. This method has even been tried in other areas like peer-reviewed journals on the Internet, for instance First Monday.

  • SourceForge.net: SourceForge is a free service to Open Source developers offering easy access to CVS, mailing lists, bug tracking, message boards/forums, task management, site hosting, permanent file archival, full backups, and total web-based administration.
  • Tigris.org: Tigris.org is a mid-sized Open Source community focused on building better tools for collaborative software development. Tigris combines the best-of-breed open source tools into an internet-scale software development suite. Key features of the Tigris tool set are security, scalability, extensibility, and customizability. Tigris will provide simple, powerful web interfaces to tools for version control, issue tracking, discussions and decision-making, automated builds, automated testing, project management and knowledge management.
 


View My Stats