Release Process on Quality Improvement in Open Source Software Project Management

: Problem statement: The Software Industry has changed and developed as a consequence of the impact of Open Source Software (OSS) since 1990s. Over a period of time, OSS has evolved in an integrated manner and most of the participants in OSS activity are volunteers. Approach: This coordination form of development has produced a considerable quantity of software; and often, the development method has been viewed as an unorganized and unstructured method of development. Few existing researches deal with the Open Source Software phenomenon from a quality perception point of view and studies where enhancements are possible in the development process. Results: Release Process in OSS plays a key role in most of the OSS projects. As this process is related to the evolution of a quality software from the community of OSS developers, this research attempts to explore the process practices which are employed by OSS developers and examines the problems associated with the development process. The scope of the study is mainly confined to process management in OSS. “Prototype development and iterative development process” approaches were adapted as a methodology. Conclusion/Recommendations: The major ﬁnding and conclusion drawn is ‘lack of coordination among developers’ who are geographically isolated. Hence, the study suggests the need for coordination among developers to line up their development process for achieving the goal of the software release process.


INTRODUCTION
Management of the release process is an important component of OSS development as it is largely concerned with the distribution of quality product to users. Development process in OSS is considered as a life cycle approach method of development, wherein the new software development process are enabled to be made available to OSS users (Aberdour, 2007;Coffin, 2006;Crowston and Howison, 2005;Erenkrantz, 2003;Feller, 2005;Fitzgerald, 2006;Greer and Ruhe, 2004;Iannacci, 2005;Koch and Schneider, 2002;Michlmayr et al., 2005;Robles et al., 2005). However, few problems may be experienced with release phase in spite of the development process in OSS projects.
This study is exploratory in nature to obtain an enhanced view of real practices in OSS release process in OSS project manager. The research study has been analyzed in terms of quality perception.

METERIALS AND METHODS
Exploratory study: For this study, thirty skilled developers from different OSS projects were interviewed and relevant information was collected. The interviews were carried out during a two-day conference. Interviewees were from developers of OSS projects. The collection of data on OSS projects, with the involvement of volunteers ranged from simple to complex project and it included projects of all categories, such as operating system, application software and management software. This high degree of diversity has an extensive coverage of release process found in the OSS community.
Types of process: 'Process management' is used as a term to refer to three different types of release processes. It differs among OSS participants. Broadly, the three process types are: • Design process intended for developers involved in designing the OSS project for experienced volunteers who need cutting edge technology • Development process with multiple new features and functionality stabilized development process tree • The testing process of OSS which uses bug fixing and distribution of testing software to user community Since volunteers are software professionals, the development process needs no refinement and hence, it is easy to organize the OSS developers. Small changes of testing process also need some attention, as they usually include few patches for show stopper bugs. The design process involves extensive efforts and the project necessitates systematic tests as per the prototype. Creation of documentation and its application need to be defined. As the major tasks in the process involve preparation of the release process, the emphasis has to be on the process management.
In terms of a software process development, software projects may be described as follows.

Prototype development process:
This approach is to facilitate performance of development process with a specific goal to be accomplished by designing the role model of the existing or new system.. Such an approach is lined up with closed source software development in which 'waterfall development model' is followed.

Iterative development process:
This approach is intended for meeting a particular software requirement and it has to be planned in advance for a specific functionality; and a deadline needs to be fixed to meet the software release process. Further features are assessed and they can be incorporated in the process of further development phase.
Developer's competency: The volunteers have many challenges and multiple roles to perform as a software developer. They need to act together with OSS volunteer communities involved in the project and deal with varied issues and also coordinate activities related to the software development process requirement. Given below are the specific abilities required for process development: • Team building: Indicating OSS community and their interaction with co-developers. The OSS community needs to value the volunteer developers in the execution of their activities • Visualization: Indicating the direction of the development of project by developers in the OSS community • Self-control: The developers need to concentrate on the ultimate aim of project development befitting the varying requirements • Responsiveness: Analyzing each statement of change in source code which occurs in the process. • Inference: Assessing the degree of risk due to the impact of any change of source code Obviously, the developers usually have to play a pivotal role in all projects with a sense of responsibility to ensure the development of quality software product. Often, in minor projects the developers generally have an executive role to perform involving creation of documentation the actual distribution of the OSS products. In larger projects too, the communication and coordination process is essential for executing the OSS project by the volunteer developers. The developers need to confirm that various software components are available simultaneously. In this process, associating the co-developers for uniformity in building a stable product have to be ensured.

Methods:
In spite of the active role and emphasis of process management in the release of quality oriented software product to user community, awareness among the user community is less as far as the overall performance of OSS projects is concerned. In fact, very few committed tools are available for usage in the development process.
The release process and developmental tools are integrated in many OSS projects. Specifically, the practice of using 'version management software system and bug tracking software system' provides support to the release process. Moreover, there are other specific methods available for application to release process, such as 'feature oriented release approach' and 'time oriented release approach'. Certain practices advocated for release process include the following: • Code-Closing: Developmental process which is frozen at this stage in order to enable concentration on the elimination of bugs and release of the software product • Release setup: OSS projects utilize schedule for release of the product, a key factor in the final stage of the project development phase leading to 'evolution of the product' • Goal setting: Few OSS projects have loosely coupled goals as they depend on the volunteer developers' nature. In many of the OSS projects, there is no assurance for actually achieving the release target without goal setting • Deadlines: Several OSS projects usually have deadlines, which are mostly not met by the developer community, as the developer community exercise less control over the projects due to volunteer participants • Developing on various platforms: It is advantageous for OSS developers to develop the software on different hardware platforms so that the undetectable bugs in a single platform can be revealed in other platforms • End-user Feedback: Obtaining feedback is one of the major benefits which influence the preparation of product release notes and it may be derived from OSS user community • Checklist: The process checklist needs to be prepared and followed in OSS projects in order to ensure that all necessary steps are followed as a prerequisite. This measure will enable the release process to deliver quality product • Post process review: Unpredictably, some OSS projects includes formal review of post release process. These are frequent casual analysis which is communicated through the mailing list of the OSS project community

RESULTS AND DISCUSSION
As explained above, developing a new stable product for user community is a complex process necessitating the need for end-user testing, documentation and subsequent release process facilitation. Certain difficulties encountered in the managing the release process consist of the following aspects.
Non readiness of functionalities: Developing OSS projects, being a complex phenomenon, non readiness of functionalities occurs periodically. Hence, the bugs need to be determined to ensure the continuation of the release process.
Interdependency of system: Between the software systems, there is an increasing degree of interdependence among sub-systems which lead to problems in the release process of a project. Especially when the subsystem components are not available for integration with the existing system, the release process becomes a complex activity. Support to previous software release: Previously released products need adequate support from the developer, which has been neglected. The reason being developed showing more interest with adequate support towards newly released products. To bridge this imbalanced support gap, the developers involved in the in the development of an OSS product need to extend their support to previously released product also.

Less interest among developers:
The interest of developers in making the product is quite low, although greater emphasis has been placed on OSS products. The developers mostly use the developmental version and fail to understand the importance of the user requirements.

Role of vendors:
When the OSS community fails to deliver new products, fewer vendors try to develop their own products in OSS. To meet the customer requirements. As a consequence, the release processes are generally not tested by the user community.
Applying changes: In OSS projects, usually many changes are applied with minimal testing before the product release. Thus, at the time of release, many bugs are identified resulting in substantial delay in the delivery of the product.

Coordination between volunteer developers:
Generally, OSS projects are carried out by volunteer developers who are in different distanced locations and are working autonomously in functionalities of their interest. In the testing process, there is a need for uniformity in line with the 'parallel process'. Moreover, product stability also needs due care. This requires a significant degree of coordination among developers.
The study has given an insight into problems and practices related to release process in OSS development. This aspect has so far remained unexplored. It was observed that the groundwork of the release process is associated with significant problems, especially in major OSS projects. Sometimes, even minor OSS projects also suffer with lack of support from OSS developers.
The developers generally work individually on similar development projects requiring minimal coordination with co-developers. Much difficulty is experienced by individual developers in every development project. When the code freezes are declared, developers desire to get their features that need to be fixed in the project; and thus, the large number of changes by the developers leads to delay in the product release. Each stage of postponement is perceived as an opportunity to make further changes in the software; and this process leads to more delays in product delivery.
It has been identified that coordination problem exists in a many OSS projects. They usually occur when there is an indication of OSS projects having established methods to overcome such issues. Significant interest is also exhibited among projects in the management of the release process, wherein quality management is considered as a direction for the product delivery and a release schedule needs to be followed. This process approach is implemented in many OSS projects, such as Open Office, BOSS and Moodle. Management of the release process ensures solutions for dealing with the complexity of large developer projects for achieving the identified objectives.

CONCLUSION
This study has provided an in depth understanding of OSS release process, which is an area of contemporary significance. The core finding of this research work is that in complex OSS projects, the volunteers experience many difficulties with the release approach. These include lack of coordination among OSS developers', who are distantly located in geographical isolation; and are mostly participating volunteer developers. OSS projects often depend on on self-task oriented responsibilities with less degree of coordination among volunteer developers. Hence, all volunteer developers have to line up their development activities for achieving a common goal during the stage of product development. Therefore, the management of the release process is to be perceived as a method to coordinate the OSS projects. Further exploratory study is needed in the area of management of the release process towards quality improvement in OSS projects.