The third book of the semester, The Cathedral and the Bazaar, examines the history, motivations, sociology, philosophy, and economics behind the open source movement. In his writings, ESR spends a significant amount of time discussing different projects such as Linux, Mozilla, and Fetchmail.
The last book of the semester, Just For Fun, examines the life of Linus Torvalds and the deveopment of the Linux operating system.
For the third project, you will have two options, based on the books above:
The first option is for you to explore an existing open source project and provide a case study of it. The artifact that you will create is a presentation that you will need to present to the class.
The second option is for you to mimic Linus Torvalds and work on an open source project "just for fun". Rather than work from scratch, however, you are to take one of your previous projects (perhaps from another class or a side hobby) and turn it into a presentable open source project others can not only utilize, but also contribute to.
Regardless of which project your group selects, here is the project timeline:
Date | Milestone | Description |
---|---|---|
April 8 | Proposal | Description of proposed project. |
April 29 | Progress | Status report of current progress. |
May 11 | Presentation | In-class presentations and demonstrations. |
More details about each of these milestones is described below.
Working in groups of 2 - 3, students must work on one of the following two projects options:
Create an open source case study that meets the following requirements:
The project your group studies must be a well established open source project with a reasonable amount of history such as:
Ideally, it would be a project that you use regularly and have an interest in.
Each member of your group must attempt to make a contribution to the open source project such as a pull request, bug report, documentation, etc.
Note: The contribution does not need to be code related. See: How to Contribute to Open Source.
The final case study must include the following topics:
A brief summary of what the project is, what its goals are, who is the target audience, and what are its key features (ie. why is it interesting).
A discussion on whether or not the project follows any of ESR's 19 principles that he enumerated in The Cathedral and the Bazaar.
A discussion of what sort of homesteading in the noosphere the project participates in (ie. how does the community communicate and organize itself, what sort of web properties does it run, etc.).
A discussion on the license the project uses and who contributes to the project's magic cauldron.
A discussion of the process of contributing to the project, including evidence of your group's attempt to contribute.
Create an open source project that meets the following requirements:
Modifies a previous project in one of the following ways:
Translate a project into a new programming (or spoken) language.
Utilize different libraries or programming language features to implement functionality.
Re-factor code to meet coding style or convention.
Re-factor code so it can easily be installed or deployed or fit within a package management system.
Adds new functionality or features.
Provides downloadable packages or binaries for the end-user to utilize.
Includes a LICENSE
file which contains the open source license for the
project.
Has a web page that describes and advertises their project (with screenshots or video).
This web page should discuss the origin or inspiration for the project and its ultimate end goal or milestones.
Likewise, it should provide a set of documentation for installing and utilizing your program.
Finally, it should provide information about how to contribute and develop the project.
The source code for your project should be stored on an online repository such as GitHub, GitLab, or Bitbucket.
Here are some real world examples you should strive towards:
Your group must submit a proposal document by midnight on Thursday, April, 8, which provides the following information:
Identify the open source project your group wishes to study and explain why it was chosen.
Describe the possible contributions you will attempt to make to the project (and which group members will be working on the contributions).
Describe the proposed project and how it meets the project requirements.
Explains how the original project will be converted into an open source project and what modifications will take place.
Your group must submit a proposal slide deck (3 - 6 slides) by midnight on Thursday, April 29, which provides the following information:
Addresses the questions and expections in feedback email provided regarding the project proposal.
Summarizes the work done thus far, in particular the status of your contributions to the open source project and what sort of community interaction your group has experienced (option 1) or the design and implementation details of your artifact (option 2).
Enumerates the remaining tasks, with specifics on what you plan on accomplishing during the upcoming sprint week and what you realistically plan on accomplishing before the deadline.
Itemize contributions to the project thus far and what how each member will aid in completing the tasks above.
Provide video or image evidence of your project and your progress.
Each group will have approximately 8 to 10 minutes to present the case study of their chosen open source project or to present their own open source project.
For the open source contribution option, address the questions in the requirements. For the "Just For Fun" option, describe the origins of your project, the modifications you made, and your future plans for new contributions.
To help you organize your presentation, your group must submit a project slide deck (6-10 slides) by midnight on Monday, May 10, which provides the information described in the requirements.
The project will be graded with the following rubric:
Metric | Points | Description |
---|---|---|
Proposal | 10 | Does the proposed project meet the requirements? |
Progress | 10 | How much work did the group do before the presentations? |
Presentation | 10 | How well did the group present and demonstrate their case study or open source project? |
Requirements | 10 | How well did the project meet the requirements? |
Technical Challenge | 10 | How difficult was the group's contribution? |
Execution | 10 | How complete was the group's contribution? |
The first two metrics will be graded by the instructor, but the final four metrics will be evaluated based on feedback from your fellow classmates.
Once you have organized your group, please fill out the following form
Note, while you can always update your submission whenever you have your proposal, code repository, and presentation slides, I would recommend creating place-holder links that you fill-in later (ie. create empty slides for the proposal and presentation and then update those documents later).