From Teaching Open Source
This worksheet is based on an assignment created by Dave Shein of RIT. It is licensed CC-BY-SA.
Working in groups of two or three, you are going to look at community/project and deduce how the community is organized.
Choose a project
Use Ohloh and OpenHatch to collect general information on open source projects. Select one active software project about which to write. Have an alternative handy if you find that you cannot get much information about your first choice.
Use the project’s IRC logs, git repo, mail list history, open IRC channels, an any other communication channel you find, to get the answers to the following questions:
- Describe software project, its purpose and goals.
- Give a brief history of the project.
- Look at the version control repository, mailing lists, developer blogs, and ticket trackers, and ask the following questions:
- Who approves patches? How many people?
- Who has commit access? & how many people have commit access?
- Who is involved in the history of the project?
- Who are the principal contributors, and have they changed over time?
- Who are the maintainers?
- Who is on the front and back end?
- What have been some of the major bugs/problems/issues that have arisen during development? Who is responsible for quality control and bug repair?
- How is the project’s participation trending and why?
- Based on these answers, how would you describe the decision making structure/process of this group? Is it hierarchical, consensus building, ruled by a small group, barely contained chaos, or ruled by a single or pair of individuals?
- Is this the kind of structure you would enjoy working in? Why or why not?
Write up a set of answers to these questions including how you arrived at your conclusions (links or conversation quotes, etc.).
Optional/Extra Credit: Based on your notes, write up your research results in a brief slide deck, and film or screencast yourself giving a 5-10 minute talk on the community. You have two options.
- If you decide this community is one you would like to work in for the semester: your audience is the other students in your class, and your objective is to persuade them to join a project team with you to work within the community.
- If you decide this community is not one you would like to work in for the semester, for whatever reason: your audience is the development mailing list (or some other appropriate mailing list - a "getting newcomers started" group is also appropriate, etc) and your objective is to persuade them to improve their getting-started scaffolding to make the project easier to access and more appealing to new contributors.