Open source communities
October 28, 2008
von Krogh and von Hippel (2006) propose a model of open source communities which seems right to me.
Open source communities
von Krogh and von Hippel (2006) propose a model of open source communities which seems right to me. It consists of the proper user-oriented incentives, a community norm to release innovations produced by the community as public goods, and low-cost project coordination and software distribution mechanisms (von Krogh and von Hippel p. 976).
Open source software communities are self-organizing groups that consist of people “who contribute to the public good of open source software by writing code for the project” (von Krogh and von Hippel, p. 975). These people share a standard development context: they work in few commonly used programming languages (C, Perl, Java, Python, Ruby, etc.), and use one of a few common development platforms (the various UNIXes, Windows, Mac OS X), and system architectures (almost exclusively Intel ix86 based machines these days). The Internet is an intrinsic enabling component of open source software development and communities because it allows essentially free distribution of software products throughout the globe, and enables group coordination of widely distributed participants through low cost computer mediated communication (e-mail, chat, forums, etc.), websites and internet-accessible version control systems.
Open source software projects also need website, file and version control system hosting. In the early days (early 1990s) of open source software, most projects were hosted on university computers (because bandwidth and space were free to university community members). Today, open source incubators like Sourceforge.net and Savannah are very important because they offer web space, forums, version control systems, and free file distribution of software products (important because bandwidth consumed by downloads of popular software products can be very expensive), all free of charge to open source software projects.
Open source software development communities “centrally involve innovating software users” (von Krogh and von Hippel, p. 976) who participate in order to make software that directly benefits them. For this reason, they typically don’t receive monetary compensation in order to participate, and don’t need to recoup the cost of development by selling the product to others. This was a revelation to software development researchers (von Krogh and von Hippel, p. 976), firm-based software producers and others, who expected developers driven by a profit motivation to dominate the software marketplace.
Open source software projects are based on voluntary contributions, which are coordinated by a strong central team (as in the Apache, Mozilla and Xorg projects), but typically by a single strong central leader (e.g. Linus Torvalds of Linux, Guido van Rossum of Python, Larry Wall of Perl). There is typically little or no formal project planning, with no milestones (exceptions to this can be found in the very large projects like Apache and Mozilla). An iterative development model is very common: developers decide which features and bug fixes will make it into the next release, perform a feature freeze, release a new version of the software, and repeat the cycle. Cycles may last days, weeks, or months. When doing major architectural changes, typically the code is branched into a development version (where the major new work is done) and a stable branch (which gets only bug fixes and minor feature enhancements). The development branch is typically publicly available simultaneously with the stable branch.
References
- von Krogh, G., von Hippel, E. (2006) “The Promise of Research on Open Source Software”, Management Science 52 (7): 975-983.
