learning communities in open source projects

82 downloads 5130 Views 372KB Size Report
Open Source Software (OSS, also known as FLOSS – Free-Libre Open Source Software) can ... Every OS project has its own developers mailing list which only ...
IADIS International Conference on Cognition and Exploratory Learning in Digital Age (CELDA 2007)

LEARNING COMMUNITIES IN OPEN SOURCE PROJECTS Giulio Concas Dipartimento di Ingegneria Elettrica ed Elettronica, Università di Cagliari Piazza d'Armi, 09123 Cagliari, Italy

Manuela Lisci Sandro Pinna Dipartimento di Ingegneria Elettrica ed Elettronica, Università di Cagliari Piazza d'Armi, 09123 Cagliari, Italy

Guido Porruvecchio Dipartimento di Ingegneria Elettrica ed Elettronica, Università di Cagliari Piazza d'Armi, 09123 Cagliari, Italy

Selene Uras Dipartimento di Ingegneria Elettrica ed Elettronica, Università di Cagliari Piazza d'Armi, 09123 Cagliari, Italy

ABSTRACT In this paper we analyze open source communities and in particular developers mailing lists, in order to identify main community practice and behavior as far as communication is concerned. Developers Mailing Lists (ML) provide a discussion platform for developer knowledge and user needs. Thus, ML can be regarded as the means whereby the OS community becomes a learning community. We focused our attention on some of the most successful OS projects, and analyzing communication exchange in OS MLs, found that these communities are characterized by two main features: collaborative learning among developers and users and peer support among advanced users. KEYWORDS Communication, Learning Community, Peer Support, Open Source.

1. OPEN SOURCE COMMUNITIES

1.1 Free Software and Development Communities Open Source Software (OSS, also known as FLOSS – Free-Libre Open Source Software) can be viewed as the result of knowledge sharing among people taking part in a development community. In this sense, an OS community may appear quite similar to a development team in a commercial software house. The main difference lies in the fact that users also participate actively in the community, reporting problems and bugs, interacting with the developers, also helping them to guide less experienced users, or becoming developers themselves. An OS community is a quite complex network of individuals having different roles and responsibilities, who can be looked upon as volunteers who spend their time creating and improving software.

73

ISBN: 978-972-8924-48-5 © 2007 IADIS

1.2 Structure and Roles Each OS project is different and has its own peculiarities, because the open approach to the development allows everyone to organize their work as they wish. On the other hand, certain groups of people are always part of a community: • Users – They use the software but do not actually participate in its development. Some of them take part in the community by posting questions to the project forum or to the mailing list • Advanced Users – They are able to understand the code and modify it according to their needs; they maintain a close relationship with developers using the proper communicational tools • Bug Fixers – They are mainly users who detect and report any kind of errors or bugs in the software • Developers – They write the code and are the main source of knowledge for other people in the community. In most communities, developers do not have the same responsibilities and authority, because some of them have been working on the project since the outset or else they add or modify code; they are called core developers, and have access to the source code repository (they can commit the code). • Managers – Project founders and early developers often become managers as the project grows in size and importance and they are responsible for organizational aspects, like release management and developers' work coordination.

1.3 Open Source Communities In an online community, interaction among members enables them to learn through knowledge sharing. Open Source communities are a particular kind of online community where the developers discuss the problems they encounter in implementing a particular feature or fixing a nasty bug. The users ask advice on how to solve any difficulties they come across when using the software or alert other members about errors and bugs. We would like to emphasize the fact that interaction does not necessarily take place just among peer members. Indeed, as we will discover in the next paragraph, discussions among developers and users (for example help requests) are quite frequent, and allow to create a network containing numerous hubs (members who are able to establish a lot of links). This facilitates information flow through the network, and explains why OS communities can be regarded as a typical example of learning communities.

1.4 Mailing Lists as Learning Communities Every OS project has its own developers mailing list which only programmers should use to discuss project related development. Many projects have a public developers ML which advanced users actually use to obtain help and exchange feedback among themselves and with developers. A new learning community composed of advanced users and developers is thus formed, users or developers alike sharing information, making suggestions, asking for help, ensuring knowledge flows regardless of their “role”. In particular, a “peer support” system can be established between advanced users who help each other, while for strictly development-related topics, programmers usually communicate using other tools, like instant messaging, private e-mail, wiki and so on. Furthermore, the support developers (or more skilled members in general) are able to give to less experienced participants, can be equated to software supplier support in the case of proprietary software. It is widely recognized that one of the greatest downsides of closed software is the strong customer-supplier dependence as far as maintenance, update and support is concerned. The learning community can easily solve this problem, because developers as well as other users can perform the same task. As will be discussed in the next paragraph, the quality of support is one of the success indicators of an Open Source project.

74

IADIS International Conference on Cognition and Exploratory Learning in Digital Age (CELDA 2007)

2. RESEARCH STUDY Sourceforge is an Open Source software development web site, which hosts a huge number of projects. Different tools are available to facilitate management, communication and code writing and it is also possible to use Sourceforge as a repository. We analyzed developers mailing list of the most active projects on Sourceforge web site. There are specific models for evaluating the success and quality of a project. These often use a set of metrics like project age, licensing, team composition and skills, number of members in different communities (for developers, for users, for bug reports...), communication among team members, support, usage of standards, modularity. These parameters are used in some of the most widely used models like Open Source Maturity Model (OSMM) or BRR (Business Readiness Rating). Our research focuses on evaluating the quality and kind of communication in developers MLs. In fact MLs are a perfect scenario in which collaborative learning and peer support are combined. We analyzed the 70 most active projects of all time hosted by Sourceforge to December 2006, as shown in Table 1. Table 1. The 70 most active projects on Sourceforge to December 2006 Corrupted archives Without developers ML

Without ML Available archives ML not active enough

Crystal Space 3D, SquirrelMail, Jedit, Icewm BO2K, Mesa3D, Small Device C Compiler, Firebird, BZFlag, User-mode Linux kernel port, Etherboot, Enlightenment WebCalendar, Numerical Python, Exult, wxWidgets, MiKTeX, Tcl, Doom Legacy, AWStats, net-snmp, Firewall Builder, The Nebula Device, PhpWiki, CMU Sphinx, Courier Mail Server, gnuplot development, Developer's Image Library, Dev-C++ Ghostscript, Python, Linux PCMCIA Card Services, Mailman, Quanta, The Freenet Project, Openads, Common C++ Libraries, Gnucleus Gabber, Boa Constructor, Scintilla, The EDGE Project Gaim, Gimp, Licq, Miranda, MinGW, Netatalk, Gallery, Arianne, RPG Geotools Double Choco Latte, TUTOS, Slash, Screem, Leo, Owl Intranet Knowledgebase, WebMail/Java, Halflife Admin Mod, Cdex, DynAPI

We actually analyzed 9 of the above projects having an active ML with a large number of participants, as shown in Table 2. Table 2. The analyzed projects Project Arianne Gaim Gallery Geotools Gimp-Print Licq Mingw Miranda Netatalk

Topic Multi player on line engine to develop games Instant messaging application Web based photo gallery Open source Java GIS toolkit Package of printer drivers Instant messaging application Tool for importing libraries and header files Instant messenger application Daemon for sharing files and printers

Participants 102 1247 484 395 627 611 105 180 738

2.1 Subscribers to Developers Mailing Lists Examination of the developers mailing list clearly showed the particular use made of this virtual space by its members. Interestingly, the subscribers consisted of advanced users and developers (both developers and core developers). Obviously developers and advanced users contribute differently to system development. In fact developers have an intimate knowledge of all the processes, develop and test features, while users utilize the system, request new features and try to adapt the system to their needs (remember that they are called advanced because they are able to manage, adapt and rewrite the code). Clearly their roles in software development are complementary: they rely on each other to improve the product, achieve the goal. So it is important they maintain contact, share information and provide continuous feedback.

75

ISBN: 978-972-8924-48-5 © 2007 IADIS

2.2 Communication in Developers Mailing Lists Good communication is the starting point for creating an efficient team. Studies have shown that team members need to communicate better if they are to improve their contribution to the task. So understanding communication among team members could help to improve project effectiveness, quality and importance.

2.3 The Communication Network A network consists of a set of nodes connecting the actors in the same setting. In our case the setting is the developers mailing list, the actors are developers and advanced users and the link is a communicational exchange (an e-mail) between two actors. In our research there is a link between two people if they participate in the same thread; a thread is a discussion focused on a very specific topic. We developed a software that gleans information from MLs about communication among participants, allowing us to construct the graph related to the communicational network. Analyzing these networks, we found that each member communicates with at least one other member, and there are one or two developers, playing a major role in the project, who are the most active in sending e-mails in mailing list. Table 3 shows the number of mails sent by the most active sender: the high variance indicates that few members send a large amount of mail. Table 3. E-mail related data Project

Senders Max n° emails sent by a single sender Arianne 102 270 (23.29%) Gaim 1247 1100 (12.28%) Gallery 484 610 (15.26%) Geotools 395 1464 (13.22%) Gimp-Print 627 3059 (39.14%) Licq 611 652 (13.83%) Mingw 105 446 (16.58%) Miranda 180 64 (6.12%) Netatalk 738 299 (6.39%)

Mean Variance 11.36 7.18 8.26 28.04 12.47 7.72 25.62 5.81 6.34

1130.5 1656.9 1224.2 12721 16030 1177.7 4338.2 98.85 586.18

Analyzing the distribution of links among subscribers we discovered that the most active members maintained contact with the entire community through a network composed of links among different members. We decided to call these members “key members”. Figure 1 shows the distribution of links in one of the analyzed projects (Gaim), but this kind of distribution can be found in all the projects, showing that the key members are closely connected with the other members. They act as hub in the network created by communication among developers mailing list subscribers, a sort of linchpin between developers and advanced users, as they decide to share information.

Figure 1. Number of links among members in Gaim project

76

IADIS International Conference on Cognition and Exploratory Learning in Digital Age (CELDA 2007)

The key members allow this virtual space to become a special space for community support, turning it into a learning community and providing support to all the other members asking for assistance or an explanation. On the other hand, advanced users offer peer support to each other, creating a highly connected knowledge network. The ellipse in Figure 2 shows this kind of peer connection, while the circle includes those links connecting two users with a hub. Table 3 quantifies the importance of peer support in the communities: in the majority of projects there are a much larger number of user links than there are links between developers and between developers and users. Ultimately we have a community where collaborative learning becomes a fundamental issue, all members providing an important contribution building a common knowledge base.

Figure 2. Network defined by links between subscribers to MinGW project mailing list. Note the hubs in the middle of the network, with many more links than the peripheral nodes, and the peer connection between users

Table 3. E-mail related data Project

Senders % links between devs Arianne 102 6.49 Gaim 1247 5.05 Gallery 484 14.64 Geotools 395 16.73 Gimp-Print 627 12.15 Licq 611 1.69 Mingw 105 39.49 Miranda 180 3.12 Netatalk 738 13.85

% links between users 61.89 43.5 36.59 56.61 25.97 62.66 12.97 62.42 31.86

% links between members 31.62 51.46 48.77 26.66 61.88 35.65 47.54 34.46 54.29

77

ISBN: 978-972-8924-48-5 © 2007 IADIS

3. CONCLUSION Community communication is a fundamental issue in OS and several different tools can be used to facilitate this process. In the present study we investigated peer support and collaborative learning in OS projects, focusing the attention on developers MLs where this means of knowledge transfer is adopted. We found that developers subscribing to the examined MLs played a major role in promoting collaborative learning among community members, while users helped each other in a way that defined as peer support. We chose the most successful projects based on parameters identified in studies on software quality, in order to assess the strength of communication among mailing list subscribers. We found that all members are closely connected, and share their knowledge. This demonstrates that collaborative learning occurs and peer support is offered. The same kind of research can be applied to different OS projects, in order to determine community communicational practices.

REFERENCES Camplani, R. et al., 2005, A comparison between co-located and distributed agile. Proceedings of the First International Conference On Open Source Systems. Genova, Italy, pp. 9-17. Camplani, R. et al., 2005, Using extreme programming in a distributed team. Proceedings of the First International Conference On Open Source Systems. Genova, Italy, pp. 39-46. Crowston, K. and Howison, J., 2005, The social structure of free and open source software development. First Monday, 10(2). Crowston, K. and Scozzi, B., 2002, Open source software projects as virtual organizations: competency rallying for software development. Software, IEE Proceedings. Dillenbourg, P., 1999, Collaborative Learning: Cognitive and Computational Approaches – Elsevier Publisher, Amsterdam, Netherlands. Gupta, M. and Singh, R., 1981, An integration-theoretical analysis of cultural and developmental differences in attribution of performance. Developmental Psychology. Tuomi, I., 2001, Innovation, and Open Source: Actors in the Network, First Monday, opensource.mit.edu. Wasserman S. and Faust K., 1994, Social network analysis: methods and applications. Cambridge University Press. Uras. S. et al., 2007, Communication flow in Open Source projects: an analysis of developers mailing lists, Proceedings of XP2007 International Conference, Como, Italy, ed. Springer, pp. 261-265. Sourceforge project web site: www.sourceforge.net.

78

Suggest Documents