Wednesday, June 9, 2010

Day 9 Reading Summary

Today's reading included the following papers:
  1. Free/Open Source Software Development: Recent
    Research Results and Emerging Opportunities
  2. Toward an Understanding of the Motivation of Open Source Software Developers
Let us consider the last reading, as it discusses what motivates volunteers to contribute to an open source project, and furthermore uses a well known model to suggest why participation in open source projects is as large as it is today.

It's people's own interests which determine their role in the project and they can have
one or more of the following several roles, in decreasing order of influence on a OSS project:
  1. Project Leader - person who started the project and decides on the vision for project
  2. Core members - people involved in the proejct for a long time who guide and co-ordinate development of the project and work together to resolve conflict
  3. Active Developers - those who regularly contribute new features and fix bugs
  4. Peripheral Developer - are essentially active developers who participate irregularly in development
  5. Bug Fixer - fix bugs that they find or that have been reported
  6. Bug Reporter - simply discover and report bugs
  7. Reader - active users of the system who try to understand how the system works by reading the source code
  8. Passive User - use the system much in the same way that most of us use commercial software
By far most users of OSS are passive users (for instance 99% of people who use
Apache are passive users), and continues to drop the higher up the role ladder you are
(i.e. there are fewer project leaders than core members). However, many users find a path
that sees them becoming a greater part of the OSS project, for instance becoming a reader
from that of a passive user. A regeneration of the community is important to prevent OSS
projects from dieing due to active members retiring from the project.

A key to success in an OSS project is that there be a large base of members contributing
to the project. An interesting aspect to consider is that as the project evolves, the
roles of contributors becomes more well defined, as you will notice certain contributors have
the tendency to contribute in certain ways. It is through this group discovery of roles
that structure can come to an OSS project. In addition, these roles are not static, members
may switch between roles regularly which conflicts with the traditional development structure
of commercial software companies.

The paper,Toward an Understanding of the Motivation of Open Source Software Developers, goes on to study members of the GIMP community, and their participation in mailing lists and other contributions to the community. Similar to the results in a paper read in the prior
day's readings, the amount of people who contribute to a OSS project, be it in e-mail discussions, or code contributions rises as the number of contributions per person falls. It further goes on to identify which group these contributors are in, and notes that the amount of contirbutions per group is directly proportional to their influence in the OSS project. For instance, a large
amount of contributions made in the GIMP come from core members, who exert a great deal of influence.

It then goes on to discuss the theory Legitimate Peripheral Participation. This theory argues that learners do not learn through being taught but rather through direct engagement in the social, culutural and technical practice of the community. For instance novice users learn more about a OSS project by enaging with veterans in the community who discuss and demonstrate
how the OSS project works. At first, novice users peripherally participate in the community, learning the requisite skills needed to understand the OSS project. However, as they become increasingly knowledgeable and perhaps interested in the project, they take
on an increasingly important role in the OSS project. In other words, as time progresses the participant changes roles to match their increasing competencies within the community. These users in turn will eventually become masters of the OSS project and in turn become
mentours to novice members of the OSS project. This repeating process is what allows OSS projects to regenerate members to sustain progress on the project. The desire to learn, the paper argues is one of the key reasons why people join OSS projects.

Therefore people become part of an OSS project because they want to learn more about a particular technology or solution. They may also want to gain reputation and credibility within the community through evolve through ever increasing roles of influence. Finally, the OSS community that successful OSS projects have, allows for high quality software to be developed and supported.

If you want to encourage learning and participation in a community ideally you want to have a transparent process where the entire development community is part of the discussion and decision making, as well as a open development process where everyone in the community can access the same sort of resources as other roles in the community. However, there are downsides to having an entirely transparent process, for instance it may be difficult
to control and manage an OSS project. Therefore one must balance the interest of community learning and participation with the need for managability and control.In any event, one should strive to build community within their OSS project, and people in various roles of an OSS project should make themselves available to the community for the community to grow and regenerate over time.

The first paper, Free/Open Source Software Development: Recent Research Results and Emerging Opportunities, essentially summarizes a lot of the studies and empirical data that has been conducted in the area of Open Source Software projects, and compares it to traditional Software Engineering methods. Rather than attempt to summarize a summary of papers, I would encourage people to read this article as it distills a lot of what is now known about the open source software way.

In particular, it discusses:
(i) why individuals participate;
(ii) resources and capabilities supporting development activities;
(iii) how cooperation, coordination, and control are realized in
projects; (iv) alliance formation and inter-project social networking;
(v) FOSS as a multi-project software ecosystem, and (vi) FOSS as a
social movement

No comments:

Post a Comment

 
Creative Commons License
CS889 Readings by James Simpson is licensed under a Creative Commons Attribution-Noncommercial 2.5 Canada License.
Based on a work at j2simpso.blogspot.com.
Permissions beyond the scope of this license may be available at j2simpso at uwaterloo dot ca.