Project Evaluation (Activity)
This activity provides a guided approach to evaluating an HFOSS project for someone trying to pick a project to which they will contribute. The activity is designed with particular attention to instructors who need to identify an HFOSS project that they will use in a class. The characteristics evaluated include the pattern of contributions, pattern of commits, programming languages used, and more.
|Learning Objectives||After successfully completing this activity, the learner should be able to:
|Process Skills Practiced||
Assessment, Critical Thinking
Not all projects are equally good for someone wanting to become a contributor. Some projects just don't welcome new contributors, or are not well organized to support getting new people up to speed. Other projects are welcoming to new contributors and provide clear pathways to join the community. Anyone considering becoming a contributor to a project should have some idea what to look for. While these evaluation criteria are not foolproof, they at least provide a starting point and framework of things to consider.
Walk through of an evaluation of the OpenMRS project
There are many criteria that should be looked at when determining if a project is appropriate to use in your class. These criteria are prioritized and explored below. The Project Evaluation Rubric contains instructions for each criterion and, in some cases, questions to guide your thinking. You will place your findings, including notes, in the rubric.
Licensing - An important first step is to identify the license used by the project. An open source project must specify that others are free to use it, redistribute it, change it, and redistribute modified versions too. An extensive list of open source licenses can be found at https://opensource.org/licenses/alphabetical. A list of free software licenses can be found at https://www.gnu.org/licenses/license-list.html#GPLCompatibleLicenses
- Go to the OpenMRS core repository (https://github.com/openmrs/openmrs-core). On the repository page, click on the "< > Code" tab below the repository name. Look at the information line below the tabs for a license name (see below image). Note: if the license does not appear here, look at the top level files in the repository for a license file.
- Does OpenMRS use an OSI approved open source license? Enter your findings in the rubric.
Languages - The language(s) used in the project is an essential consideration for your students. If the project is written in a language(s) that your students are already familiar with, or better yet, well versed in, this is one less hurdle to overcome.
- Click on the language details bar (see above image). Record the top three languages used and the percentage for each.
Activity - To support student participation a project should be reasonably active. Number of commits can be used as an indicator of activity. Little to no activity over a year, for example, may indicate that the project is dead.
- Click the "Graphs" tab then select "Commits"
- Assuming "Active" means that approximately two-thirds of the weeks in a given quarter have commits, determine whether each quarter was active over the last year by recording yes or no in the rubric. Note: you can use approximate delineations for each quarter.
Number of contributors - A suitable project must have an active user community. A common fossism states that "It's all about community." The community members are great resources for both faculty and students and they begin to learn about a new project, its culture, and norms.
- Click the "< > Code" tab. The number of contributors is listed above the language details bar. Determine how many contributors there are to the OpenMRS core project and enter your findings in the rubric.
Size - The size of the project is likely to be a factor depending on the level of your students'. A large project that is built using many various technologies is likely to seem overwhelming to a CS2 student, for example, but may be a perfect fit for a senior capstone course. A simple first step is to determine how large the project is, additional research could be done to ascertain complexity. By default, Github does not provide information about how many lines of code there are in a repository or its size. You can however install an extension for Google Chrome that will display the size. Follow the instructions below to install the extension.
- Click the “Customize and control Google Chrome” button (see below image)
- Click “More tools”
- Click “Extensions”
- Scroll down and click “Get more extensions”
- Search for “GitHub Repository Size”
- You should now see the repository size next to license type. Record the size in the rubric.
Issue tracker - The issue tracker can provide insight into the health of a project. An active issue tracker should highlight issues that clients/developers have logged as well as an indication that these issues are being addressed.
- Click "Issues" (note: this should appear next to "< > Code"; if you don't see this tab, then there are no issues logged in Github). Provide answers to the following in the rubric.
- How many open issues are there?
- How many closed issues are there?
- When was the fifth issue opened?
- New contributor - The project should appear welcoming to new contributors. Some clear examples of this would be links to getting started pages or information on ways to become involved. These pages, in turn, should include additional detail about how to become involved, as well as information about how to connect with the community.
- Follow the instructions for assessing a project's willingness to guide new contributors and enter your findings in the rubric.
- Community norms - The way in which community members interact with one another is equally important, especially for student involvement.
- Based upon the results from OpenHub (gathered in the FOSS Field Trip activity) and the information from the OpenMRS Technical Overview page, think about the size of the code base and how many different technologies and layers are involved in the application. What would you score this project for size/scale/complexity on a scale of one to three where one is "low" and three is "high".
- Activity - To support student participation a project should be reasonably active. Number of commits can be used as an indicator of activity. ,
- Based upon the number of commits (gathered in the FOSS Field Trip activity) would you consider this project active? Why or why not?
- Community - A suitable project has an active user community. While it is difficult to quantitatively evaluate the activity of a user community, some indicators include a regular history of project downloads and documentation updates over time, current activity on user mailing lists, and testimonials on the project web site.
- Examine download activity
- Go to sourceforge.net and enter OpenMRS into the search box.
- Choose OpenMRS from the search results.
- Click on the number of downloads that is listed on the project page.
- Change the date range to give a graph of downloads over the last year.
- OpenMRS has begun migrating legacy mailing list activity to OpenMRS Talk. Examine discussion activity
- Examine the IRC logs
- Based upon the download history, discussion activity, and IRC activity, do you feel this project has a good community? Why or why not?
- Examine download activity
- Mission Critical Criteria - Approachability
- Here you are evaluating a project's on-ramp to contribution, scoring as follows:
- 1 - Insufficient - Few or no pointers on how to become involved.
- 2 - Sufficient - Suggestions about how to get involved other than contributing money with accompanying high-level instructions.
- 3 - Ideal - Obvious link to get started, list of suggestions for things to do and detailed instructions.
- Examine project on-ramp.
- Link to getting started - The website has a Get Involved page with links to ways you can contribute and share your ideas.
- Each of the links (Develop, Test, Document, Translate) contain more detailed information about what and how you can contribute.
- The Getting Started as a Developer page contains a detailed list of how to get started including a list of introductory issues.
- Detailed instructions - The Developer Guide contains instructions and information in many areas including process, architecture, tools, and developer documentation.
- Based upon the resources you looked at, how would you rate the approachability of the OpenMRS project?
- Mission Critical Criteria-Suitability
- Appropriate Artifacts - Since evaluation is dependent on class objectives, in this example we'll assume the objective is to learn the process of working in an authentic development environment by contributing bug fixes to OpenMRS.
- Opportunities to contribute bug fixes - Examine the issues found at the bottom of the getting started as a developer page. How are the introductory issues categorized? How many issues are listed?
- Documentation on how to contribute bug fixes - On the Tickets page there is information on how to create and work on an issue, including links to coding standards and the code submission process. Review this information.
- Based upon the number of bugs suitable for students to tackle and information on the process of how to submit bug fixes, do you think this would be an appropriate project for your students? Why or why not?
- Contributor Support - Does the project have a high volume of guidance to help students as they learn?
- Communication Tools - Communication tools are directly available from any of the Wiki Spaces (Documentation, Projects, Resources). The Resources page contains links to OpenMRS Talk and IRC Chat, as well as links to group meetings (under Events), and training opportunities.
- Web Presence - Examine the IRC logs. Has there been activity during the last week?
- Operating Processes - Links to information about coding standards, the code submission process, and commit privileges can be found on the How-To Submit Code page. The process for making feature requests is available on the Tickets page. Are these processes well documented?
- Response to Questions - Review a few of the posts on the OpenMRS discussion platform. Do posts to this forum receive timely and supportive responses?
- How would you rate the support that newcomers to OpenMRS receive?
- On your wiki page, write a summary of why you think the OpenMRS project would be suitable for your course. Be sure to include information about the course and reasons why OpenMRS would be a good/poor match.
- Overall evaluation for Mission Critical criteria - If the mission-critical criteria seemed reasonable, then you may want to evaluate the following secondary criteria. If the mission-critical was not reasonable then the project would not be considered suitable for student participation.
- Secondary Criteria - Viability - Secondary criteria sections are OPTIONAL for the POSSE workshop assignment
- Does this project require domain knowledge that may be difficult for students to learn? OpenMRS is a medical records system. Students should be able to grasp it well enough to contribute a bug fix, which is the learning objective assumed in this example.
- How would you rate the understandability of OpenMRS?
- To have the organization support student learning, the project should have at least one stable production release. The Platform Release Notes page lists releases.
- Does OpenMRS have enough of a stable base to support student learning? Why or why not?
- User Support
- The project should have clear instructions for downloading, installing, and using the project. As noted previously, the Getting Started as a Developer page provides detailed information about setting up and using the required tools, in addition there are detailed instructions related to installation, configuration, system requirements, and troubleshooting, including videos.
- Does the documentation seem sufficient for getting students started?
- Student learning is best supported by projects that have a roadmap that includes new feature development, a method for users to submit new feature requests and a process for identifying how new features are prioritized. Feature requests are made through JIRA, the OpenMRS issue tracker. Road map planning and the process for prioritizing feature requests is available on the Technical Roadmap Planning page. Here you will find information about the planning process and how to participate in the planning process. The Technical Road Map page identifies features, their current status, and a point of contact, in addition to expected dates of completion.
- Does the roadmap provide you with enough information to make a decision about using it in your course?
- Secondary Criteria - Approachability - Secondary criteria sections are OPTIONAL for the POSSE workshop assignment
- Contribution Types
- Does the project contain opportunities for multiple types of contribution and of the type that fits the class? There are multiple projects for testers, tech writers, and developers. These can be seen on the Get Involved page. Are the number of and type of bugs available suitable for students given your course and the class size? Are there other ways that students could contribute?
- Openness to Contributions
- Acceptance of a student contribution to a project provides valuable affirmation to student learning. Determine whether the project accepts student patches. The process for contribution is documented on the Tickets page. Does this project seem likely to accept student contributions?
- Student Friendliness
- Secondary Criteria - Suitability - Secondary criteria sections are OPTIONAL for the POSSE workshop assignment
- Project Description
- Students must be able to understand the purpose of the project. Does the project clearly describe the product? Can students understand the intended uses of the product? - The About page provides an overview of who, where, and what OpenMRS is, including a downloadable PDF file and a video.
- What software and hardware platform does the FOSS project run on? Development environment can be built on Windows, Linux or Mac OS X completely with FOSS software. (Project development information found here)
- Are there resources to support these platforms?
- Are students familiar with the platforms?
- Development Features - Is the class dependent on specific development features? (Project development information found here)
- Programming language - What is the primary language?
- Development environment - What environments are supported?
- Supporting technologies - What technologies are suggested/required?
POSSE: On your user wiki page, a section describing your evaluation of OpenMRS as a suitable project for your course.
Notes for Instructors
The remaining sections of this document are intended for the instructor. They are not part of the learning activity that would be given to students.
- How will the activity be graded?
- How will learning will be measured?
- Include sample assessment questions/rubrics.
|Criteria||Level 1 (fail)||Level 2 (pass)||Level 3 (good)||Level 4 (exceptional)|
|The purpose of the project|
|Why the project is open source|
- What should the instructor know before using this activity?
- What are some likely difficulties that an instructor may encounter using this activity?
Variants and Adaptations
- Explore this list of HFOSS Projects that may be of interest.
- Read the SIGCSE paper on evaluating FOSS projects
- Watch these videos introducing the FOSS project evaluation criteria:
| ACM Body of Knowledge
Area & Unit(s)
60-90 minutes. This activity can take a significant amount of time. We only expect you to spend 60-90 minutes exploring. You may not complete the activity within this time. Of course you are welcome to spend more time if you wish.
|Environment / Materials||
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License
Suggestions for Open Source Community
Suggestions for an open source community member who is working in conjunction with the instructor.