Solutionext

Introduction

Open source software development OSSD has gained much popularity during the past decade. It provides benefits to the users as well as to the developers’ community. Users can be able to enjoy the software project without any licensing requirements and developers can have access to the publically available source code of the product, allowing them to add their expertise to the new product releases. In traditional development, closed source software projects, under the proprietary ownership of the developing organization, are commercially available and the developing organizations do not provide access to the source code. Open source softwares are successfully competing their closed source counterparts e.g. Linux, an open source operating system has posed great challenges to the widely used Windows operating system.

The philosophy behind the open source development is that software development should be contributed by developers at large and also should be freely available to use i.e. free distribution without any licensing issues. In OSSD, normally some organization proposes the idea and produces some of the code to have formal release of the product and then the product is open to the public to contribute. Developers feel happy to provide input to their respective areas of expertise. Having feedback from a large number of developers and users communities, open source softwares are quickly released and updated than their closed source counterparts.

In contrast to the traditional closed source development, OSSD has no defined teams with allocated tasks and project management practices. It is rather an iterative approach in which developers and users contribute continuously thus helps in testing also. Several successful open source software products have been developed which satisfy the users expectations including Linux, Apache Web Server, Mozilla, Perl (a programming language) etc. Linux, introduced in 1995, was able to implement several features very earlier than its counterparts because of having such a large community of developers and users.

Tools, Techniques, and Organization

The open source software development is a user-driven iterative process in which large number of people around the globe work collaboratively. We have found the following tools and techniques used in an OSS community to work in a collaborative way.

Tools

Mailing Lists:

Set up mailing list management software rather than managing it by hand.

Version Control:

It is a combination of technologies and practices for tracking and controlling changes to the project.

Bug Tracker:

Implement a database to keep the recorded bugs and its information. It can also be used for tasks, releases and new features etc.

IRC / Real Time Chat System:

Chat rooms for developers to ask questions to each other and get instant response.

RSS Feeds:

Really Simple Syndication is a mechanism to distribute the news summery.

Wikis:

Any user can edit or extend its content, it doesn’t happened in real time so it fall somewhere between IRC and websites.

Website:

It presents a clear welcome message and binds other tools like version control, chat room etc.

Techniques

Open source development life cycle mostly refer to the bazaar development mode in which we have a large number of volunteers to work, rather than traditional cathedral mode, where development is limited to few developers only.

Eric S. Raymond (2001) described bazaar development as a mode where the software is exposed by its developer/owner to a large population of developers to reuse, add code, debug code and if the owner of the project loses his interest in the project than someone else in the community may take over the project. Linux is developed in bazaar mode.

Develop an official website for your open source project to give authentic information and news along with the necessary tools (version control, bug tracker etc). But if you don’t have enough expertise to develop your own website than there are several web sites (canned hosting sites) which host open source projects for free and enable communication, version control, bug tracker, download area, regular backup etc. Some of famous canned hosting sites are www.sourceforge.net, www.freshmeat.net, http://savannah.gnu.org  etc.

Organizations:

Open Source Initiative (OSI)

The OSI are the stewards of the Open Source Definition (OSD) and the community-recognized body for reviewing and approving licenses as OSD-conformant. [http://opensource.org]

It is a nonprofit organization dedicated to promoting open source values and providing software with the open source compliance certification. It is also involved in education and awareness of open source development.

Open Geospatial Consortium (OGC)

It is consortium of companies, government agencies, universities participating in a consensus process to develop publicly available interface standards. These standards are not tied to any specific vendor and can be used by anybody.

If we provide a good communication medium than every programmer can coordinate with other so many people can do different things and thereby have a significant effect on a project’s direction and momentum. Therefore contribution, email lists, chat rooms, discussion forum and administrative duties should be handled in productive fashion.

Team leaders can nominate any member of the project as a team lead for sub tasks within the subscribe members. If any dispute arises in the leadership than the members can first try to resolve it within themselves but if they fail to do so the community council (higher authority) may be asked to intervene.

Version control system can be used to give a real time access to the latest code. A development status page with its near term goal and needs can be provided which gives history of previous releases with its feature list, to get an idea of the progress of project.

If a developer can’t figure out that whether the change he want is suitable or not or he wants some suggestions from the subscribers, on this than he ask for vote to all subscribers of the project on this website. Subscribers also have an option to write their comments while voting which may turn out to be the most important result of the poll.

Quality Assurance in Open Source Development

Quality is very vital for the success of the software in this fast growing world of technology. And quality assurance is a process of systematically planning and implementing all the actions in a development process that are needed to ensure quality, “A planned and systematic pattern of all actions necessary to provide adequate confidence that an item or product conforms to established technical requirements” [1]. Open source products are happened to be released frequently and are of higher quality although proper quality assurance guidelines and practices are not followed [2, 3]. In OSSD, designing, implementing, and testing is mainly focused in the process of QA. Quick feedback of testing and debugging from a large users and developers community results in higher quality of open source projects. Some assessment models for OSSD is also used which also takes care of QA activities like QSOS (Qualification and Selection of Open Source software) considers QA process and levels it as none, informal, and supported by tools.

In proprietary or traditional closed source development, usually there is a separate group of people who are dedicated for testing and quality assurance of the product. Conversely, OSSD, often, there are not explicitly specified people responsible for quality assurance. Large community of users and developers provide good testing coverage, but there may be a possibility that someone finds a small bug and corrects it without reporting.  So, if a bug is reported and properly communicated to the general public everyone can have a fair idea about the bug; in this way, many experts suggest the solutions to the bug which ultimately results in a better quality. Moreover, peer reviews add to the quality of the software. So, having a large numbers of developing community, defects in OSS are detected early. To improve quality, some projects also make use of live sessions and smoke testing (making sure that major functions work without taking care of finer details) [3]. Since, user involvement is extremely high, OSSD makes high use of bug tracking tools as well as configuration management. One of the processes considered by QSOS is bug/feature request tool and assesses it as none, standard tools, and active use of tools.

Linux and Apache server are two of the many open source products that are widely used as they proved to be of higher quality. In a study [4], it is found that Linux (an open source) is better than its counterpart, Windows (a closed source) in many aspects like user satisfaction, availability, operational feature, support, and scalability. Some network administrators also prefer to use Linux because of its better network support. Apache web server is most widely used and almost 70% of servers run Apache and 20% on Microsoft [5].

However, we believe, QA process has to be more organized and for very large systems there must be an independent testing team, moreover, the proper documentation must be done in order to have a better knowledge transfer about the product.

  • ISO/IEC 12207, Systems and Software Engineering – Software life cycle processes. ISO, Geneva, 2007, p.6.
  • E.S. Raymond, Linux and open-source success. IEEE Software, 1999.
  • Tobias Otte, Robert Moreton, Heinz D. Knoell. “Applied Quality Assurance Methods under the Open Source Development Model”,IEEE, 2008.
  • Michael Horowitz. (2010, Nov. 22). Linux versus Windows. http://www.michaelhorowitz.com/Linux.vs.Windows.html
  • Srinivasan Raghunathan, Ashutosh Prasad, Birendra K. Mishra, and Hsihui Chang. “Open Source Versus Closed Source: Software Quality in Monopoly and Competitive Markets”, IEEE, 2005.

Open Source Projects Development Process and Maturity

Software development is a complex process involving many phases from inception to deployment of the product and the success of the product is mainly dependant on the maturity of the process used to develop it. OSSD differs in many aspects from the traditional closed source development in a company and it has changed the view of software development from an in-house development to global collaborative development. The OSSD model delivers highly successful products as Linux, Apache, etc. as mentioned before and now many companies are trying to incorporate open source practices into their in-house development [1].

In closed source development in a company, there are defined teams with assigned roles and tasks, however, in OSSD the team structure is quite diverse. In contrast to closed source, OSSD has large community of developers, distributed worldwide participating freely and work in parallel collaboratively, thus the development process is iterative and is driven by large number of users community as well.  The relationship between users and developers is very different in these two forms of development. Typically, OSSD enjoys effective users testing as the product is used by large number of users which are more intimately involved. Companies doing in-house development also takes care of its own interests as well, but in open source, users (many of them are experts) voluntarily interact and helps in development process.

Many process maturity models such as CMM are used by the development companies in order to assess the quality of the product and for future predictability, however, in OSSD, the focus is on development and testing so highly sophisticated maturity models such as CMMI are hardly used. Since, CMMI requires an organizational setup and huge efforts, so rather simpler maturity models are used which covers some of the perspectives i.e. partial assessment of the development process. However, there are some good practices like version/configuration management, release management, and requirement analysis are being used widely in OSS community [3]. Some prominent maturity models being used for OSS are as follows [2]:

OSMM (Open Source Maturity Model) this model is proposed by Cap Gemini and covers product related and user related characteristics [2].

QSOS (Qualification and Selection of Open Source software) it considers two processes, quality assurance and bug/features request tools. Under this model, the levels for quality assurance process are none, formal, and supported by tools and the levels for bug/feature request tool are none, standard, and active use of tools.

OpenBRR (Open Business Readiness Rating) this model assesses the matured open source software tools and also covers some process-oriented elements like security, documentation, professionalism and some others [3].

[1] – J. Dinkelacker, P. Garg, R. Miller, and D. Nelson, “Progressive Open Source.”, ACM, 2002.

[2] – Etiel Petrinja, Ranga Nambakam, Alberto Sillitti, “Introducing the OpenSource Maturity Model”, IEEE.

[3] – Marcus Ciolkowski and Martin Soto, “Towards a Process Maturity Model for Open Source Software”, IEEE.

Commercial Motivation for Open Source Software Development

Open source software development can be divided into two categories.

The first category is commercial open source software development companies; they develop software to make money from that. These companies are called profit oriented software development companies (normally independent software vendors). The company maintains the copyrights and controls which enhancements are acceptable to be included in the original software code and what can be implemented next.

The second category is community open source software development; Community OSS is developed by group of volunteer programmers who spend their time and skills voluntarily. The developers contribute to document their technical capabilities and to improve job perspective with their future employers. A leader of that group decides what contributions are acceptable to be included into the source code and when the product is ready to be released. These companies are motivated by both intrinsic incentives as well as extrinsic incentives. The main motivations for these kinds of companies to develop open source software like, reduce cost of testing by depending on the open source community, supplying software related services, code sharing with the open source community and making use of huge group of qualified open source developers, that reduces the cost of hiring programmers in many cases.

There can be some more reasons why companies have invested in open source software development like

  • They can establish new communication channels with both customers and skilled developers.
  • They can get help and support from the open source community in customer support and product development as well.
  • They can improve their skills and knowledge through the learning from the open source community.
  • They can get access to extra resources.
  • Direct customer feedback and extensive testing and debugging help them to improve their product.

Other studies show that many OSS development companies have made use of the robustness of the open source development model to make money like most companies make use of open source licensing scheme by migrating to OSS and redistributing the software under licensing scheme that suits them and allow them to generate profit.

In a survey conducted by Forrester in 2005, in which Michael Goulde interviewed more than 30 open source software development companies and users. Goulde found that most of the companies have generated revenue either by developing customized add-ons for specific business purposes, providing customer services to open source software or by even providing software under dual license schemes.

All the researches show that there is money to be made in open source software development but the motivations of the companies who adopt the open source model vary according to their commitment to open source standards.

A research performed by Michael Goulde in 2005 which it was examined how different companied involved in open source generated revenue. The following table shows that many world famous organizations take part in OSS development and actually generate revenue from it.

 

open source

Table 4.1 (Michael Goulde, 2005)

 

Categories: Uncategorized

Leave a Reply

You must be logged in to post a comment.