View on GitHub

COMP 491/492

Dickinson College Computer Science Senior Seminar

H/FOSS Project Ranking and Selection Assignment

Introduction

Through the project explorations and reviews you have all gained a great deal of familiarity with a wide variety of H/FOSS project. This assignment asks you to form a project team, make a direct comparison between a number of the projects on which your team is interested in working, and based on that comparison, select the H/FOSS project on which your team will work.

Assignment

Use the information from the explorations and reviews on the H/FOSS Project Wiki page to help you form teams based on projects of common interest. There may be a maximum of 4 (preferably 3) teams and each team must have between 2 and 6 members. Keep in mind that during the actual project work, teams can divide into smaller groups (sub-teams of two or three) which work on different aspects of the H/FOSS project. There will be one submission for this assignment for each project team. The submission must be completed collaboratively with the involvement of all team members.

To complete this assignment:

  1. Visit the course Wiki on the course Moodle (link on home page).
  2. Go to the H/FOSS Projects List page on the Wiki.
  3. In the Project Rankings section:
    1. List your team members’ names, as indicated.
    2. Also feel free to give your team a name by replacing the “#”.
    3. Create a link to a new empty Wiki page that will contain your project rankings.
    4. Copy the contents of the Project Rankings Template Wiki page into your new page.
    5. Complete the Project Ranking section below.
    6. Complete the Project Selection section below.

Project Ranking

Each project team must rank a minimum of 3 projects and each of those projects must have been previously explored and reviewed by at least one team member.

  1. Add each project to the Project Considered section of the Project Ranking Template with links to the project’s home page and to the Wiki pages of all of the Project Explorations and Project Reviews that were completed (including those not on your team team).
  2. Add the name of each project to the Project Name column in the table in the Project Rankings section of the Wiki page.
  3. Using the information contained in the Project Explorations and Project Reviews and collecting additional information as is necessary and helpful rank the projects 1,2,3… (with 1 being the best) along the dimensions described below. Ties are allowed.
    • Community: How would it be to work within this project’s community? Consider issues such as the size and diversity of the user and developer communities, the availability and variety of communication channels, the quality and tone of communications, how newcomers are treated, etc. Try to find similar questions across the projects and compare the responses.
    • Complexity: How technically hard is it going to be to work on this project? Consider issues such as the size of the code base, the number of different tools/languages/technologies/frameworks used, degree and quality of documentation (both in code and in other documents), the modularity of the project (can you isolate what you have to know?), etc. Consider making a quick attempt to download and install each product.
    • Activity: How active is this project? Consider issues such as the recent responsiveness of community members, the rate at which the code is changing (is it too slow or too fast?), whether new issues are being opened and old issue are being closed, how up to date documentations is, etc. You should directly compare documents and issue tracker tickets between the projects to get a feel for how they compare.
    • Approachability: How hard would it be to get started with this project? Consider the availability, quality and complexity of install/setup directions and documents explaining how to get started as a contributor, the number of new contributors that have joined the project recently, indications and understandability of starter issues, alignment of your current skill set with the projects tools/languages/technologies/frameworks, how much domain knowledge is necessary, etc. You should directly compare documents and issue tracker tickets between the projects to get a feel for how they compare.
    • Appeal: How interested are you in this project? Consider issues such as the application domain, the benefits to end users, the technologies employed, etc.
  4. Give a few sentences summarizing your team’s rationale for the ranking in each dimension. Use project details to support your decision.

Project Selection

In the Project Selection section of the Project Ranking Template:

  1. Indicate the project that your team has selected.
  2. Give a paragraph explaining the rationale for your team’s choice. It is not necessary that you choose strictly based upon the rankings, but they should be carefully considered.
  3. Review the install documents for your project. Give a rough estimate of how many hours you think it might take your team to get the user application up and running? The development environment?
  4. List, with a brief explanation, any significant challenges that your team anticipates.
  5. List, with a brief explanation, any additional knowledge that your team will need to acquire before beginning work on this project.
  6. List, with a brief explanation, any additional concerns your team has about working on this project.

Grading

The grading criterion for the Project Exploration is included in the Project Selection rubric on the Course Syllabus.


Acknowledgements: This assignment builds from and adapts ideas and content from the following activities created by others: