View on GitHub

COMP 491/492

Dickinson College Computer Science Senior Seminar

PA03 - Project Reviews

Introduction

In the Project Exploration assignment you collected basic information about some projects to which you might be interested in contributing. In this assignment you will build on that background by gathering more in depth and detailed information about a few of the projects that you are most interested in. This will include assessing how welcoming a community is to newcomers, how responsive they are to questions, how well documented and organized the project is, and thinking about what you’ll need to learn to get started. Collecting this additional information will take some time and effort, but it will be very helpful in making a well informed decision in the next activity, which asks you (and your teammates) to select the project community with which you will work for the remainder of the year. You should plan to spend approximately 3 hours on each Project Review.

Assignment

Students pursuing a FOSS Project must complete an H/FOSS Project Review for 2 H/FOSS projects of interest. Students pursuing Research/Honors Projects must complete the an H/FOSS Review for 1 H/FOSS project. Ideally, your project reviews will build upon your project explorations. However, they may also be projects that were explored by others (see the Course Repo) or they could include a newly discovered project. If you elect to review a project that you did not explore, you will need to complete a Project Exploration for the new project before completing a Project Review for it.

Before starting your project reviews:

  1. Synchronize the main branch of your course repo with the upstream.
  2. Create a new feature branch from main for your project reviews.
  3. Switch to your new feature branch.

Project Reviews

Complete your project reviews by:

  1. Select 2 projects to review (1 for students doing an individual research or honors project) that seem most promising to you.
    • If you select a project that you did not explore in the previous assignment, complete a Project Exploration for the project before continuing.
  2. Open the .md file in your directory for the Project Exploration that you did for the project that you are now reviewing.
  3. Add the following sections and content to the .md file below the Project Exploration:
    • Project Review: Add top level section heading at the bottom of the document with the text “Project Review”.

    • Getting Started: In this section you will explore what resources are available to new developers looking to join the community. It will give you an idea of what it might be like if you decide to work on this project. Be sure to look at the project’s web site, its repositories and any other sources they provide.
      • Documents: Identify and give a link to any document that is particularly relevant to newcomers to the project (e.g. installation, getting started, how to contribute, newcomer threads in communication channels, etc.). Skim each one fairly quickly and give your assessment of it as very clear, clear, confusing, or useless.
      • Code of Conduct: Give a link to the project’s code of conduct, if it has published one. If there is a code of conduct, review it and give your thoughts on working in a project where conduct is governed by this code.
      • User Installation: Give a link (or links) to the information that a user would need in order to install or use the project’s product. This may be a set of instructions for building the application from source, it may be a page that provides downloads of the executable program, or it may be a live demo site that can be accessed on line. Briefly skim this information and give your assessment of how difficult it would be to become a user of the product as impossible, difficult, reasonable, easy, trivial. Give a short justification for your assessment.
      • Developer Installation: Give a link (or links) to the information that a new developer would need in order to get setup to begin working on the project. This will typically be a set of instructions for setting up a development environment and will often be contained within the project’s organization or repository. Note that occasionally projects will reorganize and/or move between repository hosting sites (GitHub, GitLab, SourceForge, etc.). So, be sure that you are considering the most current repository or organization. Briefly skim this information and give your assessment of how difficult it would be to setup the development environment for the project as impossible, difficult, reasonable, easy, trivial. Give a short justification for your assessment.
      • Organization: Give an overall assessment of the organization of the project. Some things to consider when making your assessment include:
        • Were the documents you found easy to find?
        • Was it clear which documents would be useful to you?
        • Is the amount of information helpful without being overwhelming?
        • Is there out of date or redundant information that may be confusing?
      • Summary: Based on your review, summarize your overall thoughts on what you think it would be like to get started working on this project. Some things to consider include: Does the documentation suggest that the project is welcoming to newcomers? Do you think you will be able to find the information need? Is the documentation written at a level that you can understand?
    • Community Communication: In this section you will explore how active and responsive the project community is. It will give you an idea of what it would be like to try to ask questions or engage in discussion with the community.

      Most projects will have several communication channels (e.g. IRC/Gitter/Slack/Discord/Mailing List/Forums/etc.), with each serving a different purpose for the community (team meetings, Q and A, knowledge base, live help, user forums, developer chat, community building, etc., etc.). Identify the main channels that are used by this project. Note that while Pull Requests and the Issue Tracker are communication channels they will be addressed separately, so you should not include them here.

      • For each of the communication channels that you identify, include the following information:
        • Channel: Give the name of and a link to the main page for the communication channel.
        • Purpose: Each communication channel will have a different purpose. Describe as best you can how the community uses this particular communication channel. Note that the channel may not tell you its purpose, you may need to read other project documentation or some of the channel messages to figure this out.
        • Currency: Give the date of the most recent information added to this channel.
        • Activity: Give estimates for how many new messages have been posted in the last day, week or month. Briefly describe how you made your estimate.
        • Responsiveness: Review the recent communications in the channel and categorize the chances of receiving a response to a message as: very likely, probably, maybe, or never. Briefly describe why you chose the category that you did.
        • Response Time: Indicate the shortest amount of time that it took for a recent message to get a response. Give a rough estimate of the typical amount of time it has taken for recent messages to get a response.
        • Members: List a few the community members that are most active on this channel (nicknames or handles are fine).
        • Tone: Give your assessment of the tone of the communications on this channel. For example, do you find it welcoming, informal, formal, rude, terse, highly technical, helpful, etc.? Give a brief justification for your assessment. If you have a particularly strong impression of the channel, you might include a few quotes to support your assessment.
      • Summary: Based on your review of the individual communication channels, summarize your overall thoughts on how you feel about communicating with this community. Some things to consider include: Are the communication’s channels active? Are questions like those you might imagine asking getting answers quickly? Do the comminations seem welcoming and helpful?

Acknowledgements

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


Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License All textual materials used in this course are licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License

GPL V3 or Later All executable code used in this course is licensed under the GNU General Public License Version 3 or later