Showing posts with label Open Source Software. Show all posts
Showing posts with label Open Source Software. Show all posts

Monday, November 19, 2012

The distributed open source software development model: observations on communication, coordination and control

Bj¨orn Lundell, Brian Lings, P¨ar J. ˚Agerfalk, and Brian Fitzgerald. The distributed open source software development model: observations on communication, coordination and control. In ECIS, pages 683–694, 2006.



View the paper here.
View the presentation here.

Abstract


Global Software Development model is becoming increasingly popular due to various reasons like reduced cost, diverse labour-pool, “follow-the-sun” work approach etc. Instead of these advantages, GSD suffers from disadvantages arising from its’ complexity of communication, co-ordination and control. These three factors are difficult to manage in centralized software development itself. In case of GSD, the difficulty increases multi-fold due to three main parameters – temporal distance, spatial distance and socio-cultural distance. Now when we consider open source software development (OSS), it is distributed in nature and some projects are highly successful. For this reason, maybe we can learn lessons from OSS regarding the practices employed, and use the successful practices in GSD and improve GSD approach. In this paper, the author compares GSD with OSS using a framework-based model and finds out that the advantages of temporal and geographical distance dominates OSS instead of disadvantages. Also, active developer selection reduces the socio-cultural distance issue. These advantages are difficult to achieve in GSD, as in GSD project goals dominate instead of personal goals, which is opposite to that of OSS.

Discussions


To begin with, from this paper we learnt the definition of GSD – its’ advantages and disadvantages. There are three parameters in software development project – communication, co-ordination and control. These parameters are affected by three dimensions – temporal distance, geographical distance and socio-cultural distance. When a software development project contains all three distances, the project is Global Software Development project. There are many advantages of GSD, primarily low cost, diverse labour-pool and round the clock project development. In spite of these advantages, GSD suffers from disadvantages with respect to communication, co-ordination and control due to temporal, geographical and socio-cultural distances. 

In GSD there is reduced opportunity for synchronous communication, which introduces delayed feedback. Cost of communication and logistics is increased. There is high potential for misunderstandings during communication. Coordination cost increases with distance and increase in size of labour-pool and diverse skill-set can make the process of coordination complicated. Due to temporal distance, management control maybe delayed, and due to geographical distance, it may be difficult to convey managerial vision. Also, different perception of authority may damage morale. 

On the other hand, in case of OSS, asynchronous communication helps to create collaborative environment. As developers are the users, geographical distance does not affect communication much as the community is highly motivated and creates a self-sustaining environment. Highly modular, plug-in style software architecture reduces the need for coordination as each module and plug-in are self-sufficient. Project goal is shared with all OSS participants and using similar coordination environment (like sourceforge) improves the coordination process. Control is maintained mainly through commit process. There is mechanism to identify non-active key member. As the project goal is developer’s own goal, there is no interest-forking like in case of GSD where the developers are paid to sacrifice their freedom to do the work that interests them the most and do the less interesting and sometimes tedious work. 

Finally, it is observed that asynchronous informal communication is more effective than synchronous formal communication. Unified collaborative environment helped reduce mistrust and improve coordination. As the developers are users in the OSS, they are highly motivated to make the project successful. 



This paper creates a structured definition of GSD based on temporal, geographical and socio-cultural distance and discusses advantages and disadvantages of GSD based on the three parameters – communication, coordination and control. The authors used existing framework to evaluate parameters of GSD to create similar evaluation of open source software development. The paper is innovative in the sense that, it noted the OSS process and compared it with GSD process and tried to discuss to differences between the two. Open source software development is distributed in nature and there are highly successful projects like Mozilla, Apache etc. In spite of its’ distributed nature, many OSS projects are successful – there must be some reason for it. This paper tries to find out the best practices in OSS that are the reason for this success, and explore the possibilities of incorporating those practices in GSD to for GSD process improvement and overcome or somehow reduce negative effects of GSD. 

Although the idea is good, I do not think in present GSD scenario it is completely possible to implement these practices. For example, even though asynchronous communication helps OSS, the organization practicing GSD may not agree to incorporate complete asynchronous communication process in their project. Also unlike OSS where developers are the users and that is why they are highly motivated, it is not possible in GSD that always developers are the users. Hence motivation factor will remain low. Even though salary helps motivation, it cannot motivate as much as trying to achieve self-goal. In OSS developers can leave the development process if they are not interested and someone else takes the place. It is not possible in case of GSD – developers cannot leave just because they are not interested. 

These positive attributes cannot be implemented at present time, but maybe in future, the GSD process will change and organizations will see value in these successful practices of OSS and incorporate them in to their organizations. 

Monday, November 5, 2012

Two Case Studies of Open Source Software Development: Apache and Mozilla




HISTORY OF OSS:

*IBM , in the 1960s, came with some software which was free i.e. libre, an OSS.
*In late 1970s and early 1980s, two different groups were establishing the roots of the
 current open source software movement:
1.On the US East coast, Richard Stallman, formerly  a programmer at the MIT AI Lab,
resigned, and launched the GNU Project and the Free Software Foundation.
2.On the US West coast, the Computer Science Research Group (CSRG) of the University
of California at Berkeley was improving the Unix system, and building lots of applications
which quickly become BSD Unix.

Examples:
Apache (widely used as a WWW server),
Perl (an interpreted language with lots of libraries),
XFree86 (the most widely used X11 implementation for PC-based machines),
GNOME and KDE (both providing a consistent set of libraries and applications to present the
casual user with an easy to use and friendly desktop environment),
Mozilla (the free software project funded by Netscape to build a WWW browser).

Differences b/w OSS and other kind of devpt:

1.OSS systems are built by potentially large numbers (i.e., hundreds or even
thousands) of volunteers. It is worth noting, however, that currently a number
of OSS projects are supported by companies and some participants are not
volunteers.
2.Work is not assigned; people undertake the work they choose to undertake.
3.There is no explicit system-level design, or even detailed design [Vixie 1999].
4.There is no project plan, schedule, or list of deliverables.

Characteristics of OSS:
1.Developers never meet face to face,
2.Different geographic locations,
3.They cordinate via emails and bulliten boards,
4.Errors get rectified very quickly
5.Developers work on the part  they are passionate about.
6.Source code is available.
7.Open source developments typically have a central person
or body that selects some subset of the developed code for the “official” releases
and makes it widely available for distribution.

Study on Apache and Mozilla:

*Mozilla is a much bigger project of 78 modules , some of which are much larger than the
entire Apache project.

*Apache had about 6,000 MRs, 18,000 delta, and 220,000 lines of code added.

Comparision between mozilla and apache.