This content is available on Github.

What is Open Source?

Open Source is actually a social movement. It’s about sharing ideas, communal ownership of what we do, and being participants rather than just consumers.

Q: What volunteer organizations, activity groups, or communities of practice do you participate in?

Open Source is People

You don’t have to go it alone.

Q: Why do you do what you do? What motivates you?

Workshop Ground Rules

My goal is to help you to learn how to deal with the uncertainties of collaborating with others in a new and potentially intimidating context. The activities will require you to explore and make observations. The discussion questions do not have a single correct answer; there are no wrong answers. The right answer is the one that works for you in this situation.

If you have more experience with open source projects, it may be tempting to provide the “answers” to others in the workshop with less experience. It’s great that you have this experience and that you’re willing to help others with it. Something to keep in mind is that less experienced people often doubt themselves, so it’s really important that they get to discover things on their own. There is a good chance they’ll discover things we had overlooked precisely because of our experience!

With all of that in mind, I would ask two things of the more experienced folks:

  1. Wait until you are invited to share your experience. Each activity provides opportunities for discussion. Once the less experienced folks have shared their insights, you are welcome to build on them with your own experience. They might even observe something that you hadn’t considered.
  2. Use these exercises as opportunities to challenge yourself. You may have one method that works well for you in some circumstances. Can you find other circumstances that challenge this method? What would you do differently?

Finally, there will be plenty opportunities for you experts in the room to help those less experienced. Please wait until you are invited because the less experienced folks need experience in asking for help.

I believe that every single one of you, no matter how little experience or “technical” ability you think you have, will teach me a lot more during this workshop than I’m going to teach you!

Create Your Persona

Github is a social platform for cooperative coding.

Create an account and fill out your profile. Share whatever information makes you comfortable. At the minimum, replace the default graphic with a photo. Think about other social networking sites you use. How do interactoins from Twitter accounts with the default egg or Facebook accounts with the grey profile make you feel?

Find Someone to help

Many projects use Github Issues to track things they need help with. Take a look at the list of issues and find something that looks interesting, or file a new one (we’ll talk about that later).

Activity

Go to the issues page for a repo (list of R-Ladies ones are below). Select an issue that you think would be good for someone new to Github to work on.

  • Q: Did you have an easy or hard time finding something? What features of the issue made it easier to identify as good for new folks to work on?
  • Q: What is the problem reported in the issue? What is the desired outcome?
  • Bonus Q: Why do you think these were provided as suggested projects?

Help someone help you!

The time we spend on things makes them special. Spending time on someone else’s special thing means that person spends time on you, and you become doubly special to them. Asking for help and giving help doesn’t mean owing a favor. You are investing in each other.

Activity

File a new issue in a Github repository for something you’ve used recently.

Suggestions:

  • What are some R packages you use regularly?
  • How was the documentation?
  • Is there test coverage?
  • Is it clear how they want submissions? Hint: How does the README look? Is there a CONTRIBUTING doc?

Pro-tip: Not all “technical” contributions are code.

Q: What projects made it easier for you to file a new issue? How did they make it easier for you? What made it more difficult in the case of the other projects?

Introduce Yourself

Pick an issue to work on. It can be from either activity. You don’t have to get it done right now, we’ll just walk through the first steps.

Q: What are the next steps you need to take to work on the issue? Is it fairly clear? If not, what information is missing?

Bonus Q: If the information is missing and you’re not sure, who else can you ask?

1 VOLUNTEER PLZ

Activity

Leave a comment on the issue you want to work on.

  • Introduce yourself
  • State your intent
  • State what you think the next steps are. If you don’t know, then ask questions to find the missing information.

Pro-tip: It’s ok to not know everything. Being open about what you don’t know is an important life skill. :)

Gettin’ in the Dirt

While you’re waiting for a response, get ready to dive into the code.

Q: Where can you find out how to contribute code on Github? Who can you ask?

2 VOLUNTEERS PLZ!

Activity

If you already know how to contribute code on Github, find someone who doesn’t.

If you don’t know how to contribute code on Github, find someone who does.

Conclusion