+ - 0:00:00
Notes for current slide
Notes for next slide

CSCI 395.86 Open Source Software Development


Project Evaluation

(or, is a project right for you?)

Stewart Weiss

Unless noted otherwise all content is released under a Creative Commons Attribution-ShareAlike 4.0 International License.

Top   1/12

What to Consider: A Synopsis

Top   2/12

What to Consider: A Synopsis

  • Project documents
Top   2/12

What to Consider: A Synopsis

  • Project documents
    • what is there, how complete are they, how hard to follow
Top   2/12

What to Consider: A Synopsis

  • Project documents
    • what is there, how complete are they, how hard to follow
  • Project tools and technology
Top   2/12

What to Consider: A Synopsis

  • Project documents
    • what is there, how complete are they, how hard to follow
  • Project tools and technology
    • what issue tracker do they use, what communication channels, what languages, tools in general, development environment
Top   2/12

What to Consider: A Synopsis

  • Project documents
    • what is there, how complete are they, how hard to follow
  • Project tools and technology
    • what issue tracker do they use, what communication channels, what languages, tools in general, development environment
  • Project activity
Top   2/12

What to Consider: A Synopsis

  • Project documents
    • what is there, how complete are they, how hard to follow
  • Project tools and technology
    • what issue tracker do they use, what communication channels, what languages, tools in general, development environment
  • Project activity
    • how active is the community, lots of issues and pull requests, many questions asked and answered
Top   2/12

What to Consider: A Synopsis

  • Project documents
    • what is there, how complete are they, how hard to follow
  • Project tools and technology
    • what issue tracker do they use, what communication channels, what languages, tools in general, development environment
  • Project activity
    • how active is the community, lots of issues and pull requests, many questions asked and answered
  • Issue tracking
Top   2/12

What to Consider: A Synopsis

  • Project documents
    • what is there, how complete are they, how hard to follow
  • Project tools and technology
    • what issue tracker do they use, what communication channels, what languages, tools in general, development environment
  • Project activity
    • how active is the community, lots of issues and pull requests, many questions asked and answered
  • Issue tracking
    • are issues triaged and tagged, are they marked for newcomers, do they all look hard
Top   2/12

What to Consider: A Synopsis

  • Project documents
    • what is there, how complete are they, how hard to follow
  • Project tools and technology
    • what issue tracker do they use, what communication channels, what languages, tools in general, development environment
  • Project activity
    • how active is the community, lots of issues and pull requests, many questions asked and answered
  • Issue tracking
    • are issues triaged and tagged, are they marked for newcomers, do they all look hard
  • Community responsiveness
Top   2/12

What to Consider: A Synopsis

  • Project documents
    • what is there, how complete are they, how hard to follow
  • Project tools and technology
    • what issue tracker do they use, what communication channels, what languages, tools in general, development environment
  • Project activity
    • how active is the community, lots of issues and pull requests, many questions asked and answered
  • Issue tracking
    • are issues triaged and tagged, are they marked for newcomers, do they all look hard
  • Community responsiveness
    • are pull requests merged quickly, are issues talked about, are questions answered timely
Top   2/12

What to Consider: A Synopsis

  • Project documents
    • what is there, how complete are they, how hard to follow
  • Project tools and technology
    • what issue tracker do they use, what communication channels, what languages, tools in general, development environment
  • Project activity
    • how active is the community, lots of issues and pull requests, many questions asked and answered
  • Issue tracking
    • are issues triaged and tagged, are they marked for newcomers, do they all look hard
  • Community responsiveness
    • are pull requests merged quickly, are issues talked about, are questions answered timely
  • Community welcomeness
Top   2/12

What to Consider: A Synopsis

  • Project documents
    • what is there, how complete are they, how hard to follow
  • Project tools and technology
    • what issue tracker do they use, what communication channels, what languages, tools in general, development environment
  • Project activity
    • how active is the community, lots of issues and pull requests, many questions asked and answered
  • Issue tracking
    • are issues triaged and tagged, are they marked for newcomers, do they all look hard
  • Community responsiveness
    • are pull requests merged quickly, are issues talked about, are questions answered timely
  • Community welcomeness
    • is the community welcoming, is it newcomer-friendly, is the conduct helpful and respectful
Top   2/12

The Project Documents

  • Make sure they are all there. That is not enough. Need to inspect them.
Top   3/12

The Project Documents

  • Make sure they are all there. That is not enough. Need to inspect them.
  • README: Read it! Is it
    • easy to follow?
    • designed for beginners to understand?
    • thorough - says where to find everything else, etc?
Top   3/12

The Project Documents

  • Make sure they are all there. That is not enough. Need to inspect them.
  • README: Read it! Is it
    • easy to follow?
    • designed for beginners to understand?
    • thorough - says where to find everything else, etc?
  • LICENSE (and/or COPYING)
    • Without this this project is not open source. Pick a different project.
    • Which license? Is there a CLA with it? A DCO?
Top   3/12

The Project Documents

  • Make sure they are all there. That is not enough. Need to inspect them.
  • README: Read it! Is it
    • easy to follow?
    • designed for beginners to understand?
    • thorough - says where to find everything else, etc?
  • LICENSE (and/or COPYING)
    • Without this this project is not open source. Pick a different project.
    • Which license? Is there a CLA with it? A DCO?
  • CONTRIBUTING: Read it! Is it
    • easy to follow?
    • designed for beginners to understand?
    • thorough - have style guides, coding guides, all procedures detailed?
Top   3/12

The Project Documents

  • Make sure they are all there. That is not enough. Need to inspect them.
  • README: Read it! Is it
    • easy to follow?
    • designed for beginners to understand?
    • thorough - says where to find everything else, etc?
  • LICENSE (and/or COPYING)
    • Without this this project is not open source. Pick a different project.
    • Which license? Is there a CLA with it? A DCO?
  • CONTRIBUTING: Read it! Is it
    • easy to follow?
    • designed for beginners to understand?
    • thorough - have style guides, coding guides, all procedures detailed?
  • CODE OF CONDUCT: Browse it!
    • If it missing it is not a good sign. Pick a different project.
Top   3/12

Other Project Documents?

  • Are there other important documents that can make or break it for you?
Top   4/12

Other Project Documents?

  • Are there other important documents that can make or break it for you?

Maybe. What about:

  • INSTALLATION
    • Are the instructions easy for newcomers?
    • Do you understand them?
    • If it is a real candidate, try to install it.
Top   4/12

Tools and Technology

  • Various questions about the code and languages:
Top   5/12

Tools and Technology

  • Various questions about the code and languages:
    • Can you program in the primary languages of the project?
    • Can you read code in those languages?
    • How hard is it to understand the project code? Is it a large code base?
    • Does the project depend on external additional software modules such as graphics libraries?
    • Do you need to have specialized knowledge to work on this project?
Top   5/12

Tools and Technology

  • Various questions about the code and languages:
    • Can you program in the primary languages of the project?
    • Can you read code in those languages?
    • How hard is it to understand the project code? Is it a large code base?
    • Does the project depend on external additional software modules such as graphics libraries?
    • Do you need to have specialized knowledge to work on this project?
  • Find the issue tracker.
Top   5/12

Tools and Technology

  • Various questions about the code and languages:
    • Can you program in the primary languages of the project?
    • Can you read code in those languages?
    • How hard is it to understand the project code? Is it a large code base?
    • Does the project depend on external additional software modules such as graphics libraries?
    • Do you need to have specialized knowledge to work on this project?
  • Find the issue tracker.
    • Is it in the repository or elsewhere?
    • Is it triaged?
    • Are issues tagged?
Top   5/12

Tools and Technology

  • Various questions about the code and languages:
    • Can you program in the primary languages of the project?
    • Can you read code in those languages?
    • How hard is it to understand the project code? Is it a large code base?
    • Does the project depend on external additional software modules such as graphics libraries?
    • Do you need to have specialized knowledge to work on this project?
  • Find the issue tracker.
    • Is it in the repository or elsewhere?
    • Is it triaged?
    • Are issues tagged?
  • What are the asynchronous channels used in the project?
Top   5/12

Tools and Technology

  • Various questions about the code and languages:
    • Can you program in the primary languages of the project?
    • Can you read code in those languages?
    • How hard is it to understand the project code? Is it a large code base?
    • Does the project depend on external additional software modules such as graphics libraries?
    • Do you need to have specialized knowledge to work on this project?
  • Find the issue tracker.
    • Is it in the repository or elsewhere?
    • Is it triaged?
    • Are issues tagged?
  • What are the asynchronous channels used in the project?
    • Do they use email?
    • Do they use IRC or some other type of chat that has an asynchronous mode such as Slack?
    • Is there a discussion board?
Top   5/12

How Active is This Project?

  • This is the million-dollar question. You need a way to assess how active it is.
  • Many questions to answer.
Top   6/12

How Active is This Project?

  • This is the million-dollar question. You need a way to assess how active it is.
  • Many questions to answer.

    • How recent are the last few commits?
Top   6/12

How Active is This Project?

  • This is the million-dollar question. You need a way to assess how active it is.
  • Many questions to answer.

    • How recent are the last few commits?

    • How many people are maintaining the project?

Top   6/12

How Active is This Project?

  • This is the million-dollar question. You need a way to assess how active it is.
  • Many questions to answer.

    • How recent are the last few commits?

    • How many people are maintaining the project?

    • How many contributors has the project had in the past year? in the past few months?

Top   6/12

How Active is This Project?

  • This is the million-dollar question. You need a way to assess how active it is.
  • Many questions to answer.

    • How recent are the last few commits?

    • How many people are maintaining the project?

    • How many contributors has the project had in the past year? in the past few months?

    • How long do issues stay open?

Top   6/12

How Active is This Project?

  • This is the million-dollar question. You need a way to assess how active it is.
  • Many questions to answer.

    • How recent are the last few commits?

    • How many people are maintaining the project?

    • How many contributors has the project had in the past year? in the past few months?

    • How long do issues stay open?

    • How long do pull requests/merge requests stay open?

Top   6/12

How Active is This Project?

  • This is the million-dollar question. You need a way to assess how active it is.
  • Many questions to answer.

    • How recent are the last few commits?

    • How many people are maintaining the project?

    • How many contributors has the project had in the past year? in the past few months?

    • How long do issues stay open?

    • How long do pull requests/merge requests stay open?

    • How many issues are currently open?

Top   6/12

How Active is This Project?

  • This is the million-dollar question. You need a way to assess how active it is.
  • Many questions to answer.

    • How recent are the last few commits?

    • How many people are maintaining the project?

    • How many contributors has the project had in the past year? in the past few months?

    • How long do issues stay open?

    • How long do pull requests/merge requests stay open?

    • How many issues are currently open?

    • Is there a lot of discussion about issues and pull requests?

Top   6/12

How Active is This Project?

  • This is the million-dollar question. You need a way to assess how active it is.
  • Many questions to answer.

    • How recent are the last few commits?

    • How many people are maintaining the project?

    • How many contributors has the project had in the past year? in the past few months?

    • How long do issues stay open?

    • How long do pull requests/merge requests stay open?

    • How many issues are currently open?

    • Is there a lot of discussion about issues and pull requests?

  • Stay away from projects with small staff with long periods of inactivity. These people have jobs or other obligations that keep them from handling your contributions in the time frame you want.
Top   6/12

Issues and Issue Tracking

  • You want a project that makes it easy for you to jump in and find a good issue on which to work.
Top   7/12

Issues and Issue Tracking

  • You want a project that makes it easy for you to jump in and find a good issue on which to work.

    • Are the issues tagged for easy filtering?
Top   7/12

Issues and Issue Tracking

  • You want a project that makes it easy for you to jump in and find a good issue on which to work.

    • Are the issues tagged for easy filtering?

    • Are they marked with tags like First-Timers Only, Newbie, Good First Issue, Easy, and so on?

Top   7/12

Issues and Issue Tracking

  • You want a project that makes it easy for you to jump in and find a good issue on which to work.

    • Are the issues tagged for easy filtering?

    • Are they marked with tags like First-Timers Only, Newbie, Good First Issue, Easy, and so on?

    • Are there detailed descriptions, and do they require very detailed descriptions?

Top   7/12

Issues and Issue Tracking

  • You want a project that makes it easy for you to jump in and find a good issue on which to work.

    • Are the issues tagged for easy filtering?

    • Are they marked with tags like First-Timers Only, Newbie, Good First Issue, Easy, and so on?

    • Are there detailed descriptions, and do they require very detailed descriptions?

    • Do they have an Assignee field so that you will know if they are taken?

Top   7/12

Issues and Issue Tracking

  • You want a project that makes it easy for you to jump in and find a good issue on which to work.

    • Are the issues tagged for easy filtering?

    • Are they marked with tags like First-Timers Only, Newbie, Good First Issue, Easy, and so on?

    • Are there detailed descriptions, and do they require very detailed descriptions?

    • Do they have an Assignee field so that you will know if they are taken?

    • Are there long discussions that can be read for some of the issues? Read them! Read the conversations about closed issues.

Top   7/12

Community Responsiveness

  • Responsiveness is not the same as welcomeness. How long does it take to get a response, regardless of its tone?
Top   8/12

Community Responsiveness

  • Responsiveness is not the same as welcomeness. How long does it take to get a response, regardless of its tone?

    • Do the people in this project respond quickly to questions in general. such as how to install, or a question about ambiguous documentation?
Top   8/12

Community Responsiveness

  • Responsiveness is not the same as welcomeness. How long does it take to get a response, regardless of its tone?

    • Do the people in this project respond quickly to questions in general. such as how to install, or a question about ambiguous documentation?

    • Do the people respond to questions about existing issues?

Top   8/12

Community Responsiveness

  • Responsiveness is not the same as welcomeness. How long does it take to get a response, regardless of its tone?

    • Do the people in this project respond quickly to questions in general. such as how to install, or a question about ambiguous documentation?

    • Do the people respond to questions about existing issues?

    • Do they respond to submitted pull requests or to questions before pull requests are submitted?

Top   8/12

Community Responsiveness

  • Responsiveness is not the same as welcomeness. How long does it take to get a response, regardless of its tone?

    • Do the people in this project respond quickly to questions in general. such as how to install, or a question about ambiguous documentation?

    • Do the people respond to questions about existing issues?

    • Do they respond to submitted pull requests or to questions before pull requests are submitted?

    • In conversations, do people address the questions or do they skirt them?

Top   8/12

Community Welcomeness

  • You should not become involved in a toxic community or in one that feels toxic to you. Read the various discussions and conversations, especially the long ones.

  • Look at the closed issues and read their conversations.

Top   9/12

Community Welcomeness

  • You should not become involved in a toxic community or in one that feels toxic to you. Read the various discussions and conversations, especially the long ones.

  • Look at the closed issues and read their conversations.

    • Is the project's community welcoming? Are their communications not just polite, but friendly, and maybe even understanding?
Top   9/12

Community Welcomeness

  • You should not become involved in a toxic community or in one that feels toxic to you. Read the various discussions and conversations, especially the long ones.

  • Look at the closed issues and read their conversations.

    • Is the project's community welcoming? Are their communications not just polite, but friendly, and maybe even understanding?

    • Are responses generally constructive?

Top   9/12

Community Welcomeness

  • You should not become involved in a toxic community or in one that feels toxic to you. Read the various discussions and conversations, especially the long ones.

  • Look at the closed issues and read their conversations.

    • Is the project's community welcoming? Are their communications not just polite, but friendly, and maybe even understanding?

    • Are responses generally constructive?

    • Do the conversations and discussions adhere to the Code of Conduct?
Top   9/12

Community Welcomeness

  • You should not become involved in a toxic community or in one that feels toxic to you. Read the various discussions and conversations, especially the long ones.

  • Look at the closed issues and read their conversations.

    • Is the project's community welcoming? Are their communications not just polite, but friendly, and maybe even understanding?

    • Are responses generally constructive?

    • Do the conversations and discussions adhere to the Code of Conduct?

    • Do people use civil language?

Top   9/12

Community Welcomeness

  • You should not become involved in a toxic community or in one that feels toxic to you. Read the various discussions and conversations, especially the long ones.

  • Look at the closed issues and read their conversations.

    • Is the project's community welcoming? Are their communications not just polite, but friendly, and maybe even understanding?

    • Are responses generally constructive?

    • Do the conversations and discussions adhere to the Code of Conduct?

    • Do people use civil language?

    • Do they refrain from personal attacks?

Top   9/12

Community Welcomeness

  • You should not become involved in a toxic community or in one that feels toxic to you. Read the various discussions and conversations, especially the long ones.

  • Look at the closed issues and read their conversations.

    • Is the project's community welcoming? Are their communications not just polite, but friendly, and maybe even understanding?

    • Are responses generally constructive?

    • Do the conversations and discussions adhere to the Code of Conduct?

    • Do people use civil language?

    • Do they refrain from personal attacks?

    • Do maintainers thank people for their contributions?

Top   9/12

Community Welcomeness

  • You should not become involved in a toxic community or in one that feels toxic to you. Read the various discussions and conversations, especially the long ones.

  • Look at the closed issues and read their conversations.

    • Is the project's community welcoming? Are their communications not just polite, but friendly, and maybe even understanding?

    • Are responses generally constructive?

    • Do the conversations and discussions adhere to the Code of Conduct?

    • Do people use civil language?

    • Do they refrain from personal attacks?

    • Do maintainers thank people for their contributions?

  • Are you afraid to reach out, or are you intimidated? You need to decide if it is because of something in the community or if it is just your own anxiety or fear or shyness. You must overcome it and see what happens.

Top   9/12

Is That It?

  • After you consider all of the facets of a project and its community, you still need to decide if it is a good fit for you.
Top   10/12

Is That It?

  • After you consider all of the facets of a project and its community, you still need to decide if it is a good fit for you.

  • This is where your goals, skills, resources, and interests enter the picture. Is this project something in which you are really interested?

Top   10/12

Is That It?

  • After you consider all of the facets of a project and its community, you still need to decide if it is a good fit for you.

  • This is where your goals, skills, resources, and interests enter the picture. Is this project something in which you are really interested?

  • If not, find a different project because your lack of enthusiasm will win.

Top   10/12

Is That It?

  • After you consider all of the facets of a project and its community, you still need to decide if it is a good fit for you.

  • This is where your goals, skills, resources, and interests enter the picture. Is this project something in which you are really interested?

  • If not, find a different project because your lack of enthusiasm will win.

  • Do you have the skills to tackle some of the issues that you found? Are there enough open issues that you'll be able to find one or two?

Top   10/12

Is That It?

  • After you consider all of the facets of a project and its community, you still need to decide if it is a good fit for you.

  • This is where your goals, skills, resources, and interests enter the picture. Is this project something in which you are really interested?

  • If not, find a different project because your lack of enthusiasm will win.

  • Do you have the skills to tackle some of the issues that you found? Are there enough open issues that you'll be able to find one or two?

  • If you do not have the time to achieve your goals in this project because there is just too much to learn, find a different project or modify your goals.

Top   10/12

Sources

  1. VM Brasseur, Forge Your Future with Open Source, The Pragmatic Programmers, LLC. 2018.
  2. https://opensource.guide/how-to-contribute/#finding-a-project-to-contribute-to
Top   11/12
Top   12/12

What to Consider: A Synopsis

Top   2/12
Paused

Help

Keyboard shortcuts

, , Pg Up, k Go to previous slide
, , Pg Dn, Space, j Go to next slide
Home Go to first slide
End Go to last slide
Number + Return Go to specific slide
b / m / f Toggle blackout / mirrored / fullscreen mode
c Clone slideshow
p Toggle presenter mode
t Restart the presentation timer
?, h Toggle this help
Esc Back to slideshow