Models of FOSS Collaboration
In these notes we exam different models of collaboration in open source projects.
We are particularly interested in how the content that is shared -- be it encyclopedia knowledge (Wikipedia) or source code (Linux) -- is controlled.
There are many different models possible, ranging from very democratic models (Wikipedia) to what are called benevolent dictatorships (Linux) and many forms of hybrid models in between (Drupal, Sahana).
Contents |
Wikipedia: Direct Democracy
- Anonymous users can edit Wikipedia entries.
- Traditional Encyclopedia: Hierarchy of publisher, editors, authors.
- Wikipedia: Anyone can write, edit, publish.
- Neutral point-of-view and good faith guide user's contributions.
- Jimmy Wales, as a kind of constitutional monarch, has final say.
- Bureaucrats, stewards, developers, administrators have responsibilities (rather than rights) and help manage the site.
- Wales and the Wikipedia board of directors have authority to mediate editorial disputes, remove abusive and uncooperative users.
- See: Joseph Reagle, In Good Faith (Ph.D. dissertation)
- See: Julianna Brunello, A review/summary of Brunello's dissertation
Linux: Benevolent Dictatorship
- A single individual decides what code goes into the Linux codebase.
- Traditional Software Development: a) Plan, b) Analyze, c) Design, d) Implement.
- FOSS Development: a) Code; b) Review; c) Pre-commit test; d) Development release; e) Parallel debugging; f) Production release.
- Originally, only Linus Torvald, the project's founder, had authority to commit code to the main Linux repository.
- The Linux Development Team: http://www.kernel.org/faq/#account
- See: Federico Iannaci, The Linux Development Model
- See: Eric Stanley Raymond, The Catherdral and the Bazaar.
- See: Karl Fogel, Producing Open Source Software
Sahana: Core Development Team
- A small core team of committers can contribute code directly to the codebase and give final approval to patches for inclusion in the code base.
- Sahana's committers: http://wiki.sahanafoundation.org/doku.php/team:home
Drupal, Content Management System: A Team of Maintainers
- Drupal is code that enables a non-programmer to create and maintain various kinds of Web sites.
- What is a content management system: http://drupal.org/about
- Drupal's Development Model: http://drupal.org/contribute
- Distinguish between: Drupal Software vs. Content on a Drupal-supported Website
- Example: Whitehouse.gov is a Drupal-managed web site.