Virtual Communities Quintessential to Open Source Software Development
September 8th, 2008 | Posted in Web, Curtin, Virtual Communities, Open Source, OSSD |
Abstract
Collaborative software development projects existed since the 1960s and 1970’s. They embody a “hacker culture” that believes software code as well as scientific research should be open, free and available to all. The Internet has made it even easier for developers in code-sharing and communication means. Open source software development projects are usually initiated from either personal or business needs. Open source software is written by programmers for no visible monetary gain. Other motivations, whether internal or external, guide these programmers to voluntary contribute their source code. Open source software communities are composed of loosely affiliated programmers with a common interest to see the project succeed. These communities vary in their social structure and communication patterns but all benefit from sustainable community through members’ role transformation. Role transformation rewards active developers by giving them more important roles, by giving them access to modify the source code and by higher peer recognition. T he continuous development and success of the open source software is dependant on an active community support and contributions.
“Community-based” model has generated many of the innovations we use today on a daily basis. Open source software products exist as public goods without exclusive property rights or hierarchical managerial control during their development process. This model is based upon the open voluntary and collaborative efforts of users, often called open source software development (OSSD) communities, which possess distinct social structures. OSSD communities develop norms and rules, and methods for maintaining their structure and integrity (Shah, 2005).
OSSD projects are unlikely to sustain a long-term success unless there is an associated community that provides the platform for developers, users, and user-turned-developers to collaborate with each other. This paper proposes that OSSD is largely dependent on its associated virtual community for it to thrive. Furthermore, a strong correlation exists between the evolution of an OSSD project and that of its associated community.
Many definitions exist regarding open source software with the major difference being the software’s distribution or re-distribution rights. For the purpose of this paper open source software is considered that which is made publicly accessible usually over the Internet. Users have free access to the software’s source code as well as the ability to examine the source code, modify it and redistribute the software (Spaeth, Haefliger, von Krogh and Renzel, 2008).
A couple of the most well-known and successful examples of open source software development projects are the Unix/Linux/FreeBSD type operating systems development communities, and the Apache web server development community.
According to Frost (2005), the open source software development model, or the activity of openly sharing source code in a collaborative environment, is not new. Its origins can be traced back to the 1960s when MIT, Bell Labs (the research and development branch of AT&T) and General Electrics joined to sponsor an operating system called Multics or Multiplexed Information and Computing Service. The Multics project was eventually cancelled in 1969; however, a programmer from Bell Labs, Ken Thompson took it upon himself to write a new simpler operating system based on the Multics code which he called Unics or Uniplexed Information and Computing Service and which since has been known as Unix.
In those years, the collaborative and open spirit of scientific research was commonplace and prevalent in source code sharing by programmers in different organisations. Furthermore, under the terms of its regulated monopoly, AT&T could not engage in commercial computing activities and thus could not sell Unix for profit. Instead AT&T decided to licence out Unix at a marginal cost under minimal licensing terms to universities and others who they believed could help them improve the software. These two factors gave way to a system of collaborative code sharing around the globe with many working together in enhancing and modifying Unix (Frost, 2005).
Over the years and through the usage of this decentralised, voluntary development model, Unix transformed and split into many variations and one such example is Berkeley’s version called Berkeley Software Distribution or BSD. By the late 1970’s Unix experienced a growth in popularity. As a result of AT&T’s deregulation, it could now sell licenses of Unix for a market price. AT&T’s shift to a closed, cathedral-like development model effectively halted its role in the collaborative development process that it had helped to establish. AT&T went the commercial, proprietary route while, Berkeley in contrast, stayed on course in the established collaborative development path, freely offering the BSD source code (Frost, 2005).
Open source software depends heavily on communication tools, since its users who modify, innovate, and evolve the code can be located anywhere. The ARPAnet provided a reasonable platform for this kind of communication, but with the rapid dissemination of the Internet in the early 1990s there was a surge in open source activity (Frost, 2005).
In the beginning of the 1990s, Linus Torvalds, a computer science student at University of Helsinki, although preferring Unix style operating systems, found it impractical to run a commercial version of Unix on his personal computer. Torvalds came across Minix, a simplified Unix clone that was being used for teaching purposes. Out of a personal need Torvalds used Minix as a scaffold to build the kernel of a Unix-like operating system which he called Linux. Torvalds released the source code for his new operating system onto an Internet newsgroup and through the next couple of years many developers joined the Linux newsgroup and the Linux development pace accelerated with updates to the system being released on a weekly or sometimes even daily basis. Torvalds’ Unix variation “ultimately proved to be the quintessential open source application” (Frost, 2005).
Torvalds’ Linux is one example that OSSD projects are usually initiated when an individual or a business had a specific need for some software. Many observed, and have tried to explain, the irrational, voluntary and altruistic aspects of the public good productions where programmers provide open source code for others at their own costs of time and energy with no visible monetary gain. OSSD projects rely on free contributions from community members, which can be motivated to participate in the development community from various reasons.
Hars and Ou (2001) suggest that participant developers are motivated by internal and external factors. Internal factors include self-interest, feeling of competence and fulfilment that arise from writing programs. External factors, which can also be considered as future indirect rewards include human capital such as expanding their skill base, capabilities and knowledge (learning), increased self marketability and peer recognition. OSSD also provides an avenue for selling compliment products to the open source software being developed. According to a questionnaire conducted by Hars and Ou (2001), open source participants rank most highly on human capital and self determination but also other external factors such as selling products, self-marketing and personal need. Their analysis suggests that external rewards are more important than internal motivations.
Spaeth, Haefliger, von Krogh and Renzel (2008) propose that knowledge as a by-product of the production process of open source software rewards its contributors. They also propose that increased involvement with the community benefits the individual from reputation increase, increased control over the technology and increased learning opportunities. OSSD represents a “private-collective” model of innovation where developers obtain private rewards from writing code for their own use, sharing their code, and collectively contributing to the development and improvement of software (von Hippel and von Krogh, 2003 quoted from Von Krogh, Spaeth and Lakhani, 2003).
Open source software is written and supported by programmers, many coming from the “hacker culture” which believes that code cannot and should not be owned nor should it be treated as property. The idea of free software can readily be compared to the ideal of science. Scientific knowledge receives its special status and credibility from the very fact that it is not owned. In the cases of both science and free software, the goal and the prerequisite is a community of sharing based on a certain set of common values. In the case of open source software, the underlying values forming the community include a belief in the freedom of information and a passion for improved information technology (Sharma, Sugumaran and Rajagopalan, 2002).
OSSD communities are composed of loosely affiliated users with common interests and shared practices in a specific domain. Community members regularly interact with each other for knowledge sharing and collaboration in pursuit of solutions to a common class of problems. OSSD communities are characterised by voluntary participation, the relatively free flow of information, and far less hierarchical control and coordination than seen in software business firms. These characteristics allow for rich feedback and the potential to match problems with individuals who possess the ideas and means to solve them. Due to the varied needs and skills of the individuals involved, OSSD communities are often well equipped to identify and solve a wide range of design problems (Shah, 2005; Nakakoji, Yamamoto and Kishida, 2005).
OSSD communities’ social structure incorporates aspects of coordination, control, socialisation, continuity (achieved by establishing a community) and learning (Crowston and Howison, 2004). Frost considers additional aspects of collaboration, reciprocity (code-sharing) and decentralisation in communications and development (2005).
One of the most varied measurements of social structure in OSSD is centrality, which is apparent when inspecting communication patterns. The communications structure of a project is an important element in understanding a project’s practices and there is a relationship between project size and communication decentralisation. Communication patterns in OSSD vary widely – with decentralised communication patterns and communications style (Crowston and Howison, 2004).
OSSD communities embrace open communication and by doing so they increase the diversity and expertise of potential participant developers and which in return increase the likelihood that an effective solution will be found quicker. The Internet has been an ideal means for open source software participants to communicate, as it is relatively inexpensive, widely accessible and easily scalable (Shah, 2005). The Internet also provides the virtual plane of interaction between OSSD community members, with various communication methods such as websites, wikis, mailing lists, IRC channels, instant messaging, and newsgroups.
The fundamental difference between OSSD projects to proprietary ones is the role transformation. In proprietary software projects, developers and users are clearly defined and strictly separated. However, in OSSD projects, there is no clear distinction between developers and users and all users are potential developers (Nakakoji, Yamamoto and Kishida, 2005). Members of an OSSD community assume certain roles by themselves according to their personal interest in the project, rather than being assigned by someone else. These roles include in decreasing order of involvement and centrality: project leader, core member, active developer, peripheral developer, bug fixer, bug reporter, reader and passive user. Although a strict hierarchical structure does not exist in OSSD communities, their structure is not completely flat. The influences that members have on the system and the community are different. For example a project leader affects more members than that of a core member and so on. Users have the least influence, but they still play important roles in the whole community. Although they do not directly contribute to the development of the system technically, their very existence contributes socially and psychologically by attracting and motivating other, more active members (Ye and Kishida, 2003). The distinct feature of role transformation in OSSD projects leads to a different social structure. Each OSS community has a unique structure depending on the nature of the system and its member population.
For an OSSD project to have a sustainable development, the system and the community must co-evolve. Voluntary contribution by community members is vital for OSSD project success. The evolution of an OSSD community is affected by the contributions made by its aspiring and motivated members. By establishing their own identities or shaping the identities of others through voluntary participation in the community practice, members help reproduce and preserve the community (Ye and Kishida, 2003).
An OSSD project is unlikely to sustain long-term success unless there is an associated community that provides the platform for developers, users, and users-turned-developers to collaborate with each other (Nakakoji, Yamamoto and Kishida, 2005). By allowing users to become co-developers, OSSD encourages natural product evolution (O’Reilly, 1999). OSSD communities evolve through the contributions made by the community members and these contributions alter the member’s role in the community, thus resulting in the evolution of the community by reshaping community structure and dynamics (Nakakoji, Yamamoto and Kishida, 2005). Rewarding contributing members with higher recognition and more important roles is also important for the sustainability of the community and the system development, because it is the way that the community reproduces itself. The right to access and modify the source code is one of those rewards. Furthermore, learning is one of the major driving forces that motivate people to get involved in OSS communities (Ye and Kishida, 2003).
Nakakoji, Yamamoto and Kishida say:
Because the evolution of F/OSS communities and the evolution of F/OSS systems are mutually dependent, it is essential to the long-term success of F/OSS development that enough attention should be paid to the creation and maintenance of a dynamic and self-reproducing F/OSS community. The project leader and core members of an existing F/OSS community should not only focus on the evolution of the system, but also strive to create an environment and culture that fosters the sense of belonging to the community and mechanisms that encourage new members to move toward the centre of the community through continual participation. (2005)
“If growth is a goal of development, then the ability to achieve modularity could be a crucial success factor” (Crowston and Howison, 2004). Amongst many other reasons why OSSD works, scalable division of labour and extensibility are indispensable factors. Open-source projects work by exploiting a loophole in Brooks Law that states “adding developers to a late project makes it later.” Open source software debugging and quality assurance productivity scales up as the number of developers helping to debug the software increases. The main reason for this is that all other things being equal, having more people test the code will identify the “error-legs” much more quickly than having just a few testers. Or according to Linus’ Law: “Given enough eyeballs, all bugs are shallow.”
In this paper, it was only mentioned briefly the advantages of OSSD project over proprietary development. Advantages such as open communications and open knowledge sharing that lead to a private collective of knowledge and innovation. Unix vs. Linux/BSD is one example of a software product development success with Linux and BSD rely heavily on members’ contributions. Furthermore, as OSSD success relies on voluntary contribution, it is imperative to establish a thriving community in order to keep the momentum of development going. There are many motivations for people to join an OSSD community such as human capital, expanding skill base and knowledge. However, many open source participants rank external motivations as more important such as self marketability and peer recognition. These external motivations are directly linked to member’s roles transformations within the OSSD community. Community members are motivated to become more knowledgeable and are rewards with higher recognition and more important roles in the community. Furthermore, without new members to motivate and support existing developers, the community will not reproduce itself. Therefore, the long-term success of an OSSD project is directly dependant and linked to the success and evolution of its associated community.
Bibliography
- Crowston, K. & Howison, J. (2004). The social structure of Free and Open Source software development, School of Information Studies, Syracuse University
- Elliot, M. (2003). The Virtual Organizational Culture of a Free Software Development Community, Institute for Software Research, University of California, Irvine
- Frost, J.J. (2005). Some Economic & Legal Aspects of Open Source Software, University of Washington, Department of Economics.
- Hars, A. & Ou, S. (2001). Working for Free? – Motivations of Participating in Open Source Projects, Proceedings of the 34th Hawaii International Conference on System Sciences - 2001
- Kollock, P. (1996). Design Principles for Online Communities, The Internet and Society: Harvard Conference Proceedings. Accessed on May 26, 2008.
- Lerner, J. & Tirole, J. (2002). Some Simple Economics of Open Source Journal of Industrial Economics 50 (2), 197–234
- Nakakoji, K., Yamamoto, Y. & Kishida K. (2005). The Co-Evolution of Systems and Communities in Free and Open Source Software Development, Free/Open Source software Development, IDEA Group Publishing, Ch 3, 59-82
- O’Reilly, T. (1999). Lessons from open source software development. Communications of the ACM, 42(4), 33-37
- Porter, A & Schmidt, D.C. (2001). Leveraging Open-Source Communities To Improve the Quality & Performance of Open-Source Software. Retrieved on May 01, 2008
- Spaeth, S., Haefliger, S., Von Krogh, G. & Renzl, B. (2008). Communal resources in open source software development Information Research, 13 (1) paper 332. Accessed on May 01, 2008
- Shah, S.K. (2005). Open Beyond Software, O’Reilly Media: Sebastopol, CA
- Sharma, S., Sugumaran, V. & Rajagopalan, B. (2002). A framework for creating hybrid-open source software communities, Blackwell Science Ltd, Info Systems J (2002) 12, 7–25
- Von Krogh, G., Spaeth S. & Lakhani, K.R. (2003). Community, Joining, and Specialization in Open Source Software Innovation: A Case Study, Research Policy 32 (2003) 1217–1241
- Ye, Y. & Kishida, K. (2003). Towards an Understanding of the Motivation of Open Source Software Developers, IEEE Computer Society, International Conference on Software
