Shauna Gordon-McKeon, OpenHatch

Open Source Bridge, June 2014

Who am I?

This Talk

Part 1: What I Know                     

Part 2: What You Know (an activity)

Contributing

Common Obstacles

  1. finding a project
  2. understanding the issue/task
  3. setting up the development environment
  4. anxiety and self-doubt

Obstacle #1: Picking a Project

Picking a Project

  1. brainstorm
  2. research
  3. evaluation
  4. contact

Evaluating a Project

  1. activity
  2. responsiveness
  3. size
  4. culture

Read more about our "Finding a Project" activity at
bit.ly/finding-a-project.

Obstacle #2: Understanding issues.

Annotating Issues

  1. Skills needed
  2. Tools to use
  3. Useful documentation
  4. Where to make the change
  5. What community members can help/give feedback

Read more about preparing tasks at our in-person events handbook: http://opensource-events.com

(Coming soon: a task browser! By GSoC student Elana Hashman.)

Obstacle #3: Setting up the development environment.

"lots of downloads, need an approved account to have access… had to create own database on localhost… tears clouding vision"

From the In-Person Events Handbook:

  1. What virtual environments or development kits you need
  2. What dependencies you need
  3. How to download the source
  4. Which version to download
  5. How to build/compile the project
  6. How to test your changes
  7. How to contribute your changes back to the project

Also:

  1. Contact information for community/maintainers
  2. Overview of the project
  3. As much documentation as possible

Need help? Try a setup sprint.

Obstacle #4: Anxiety and Self-Doubt

  • I'm a burden on project maintainers if I ask for help.
  • No one has responded to my question because it is stupid.
  • I'm having trouble contributing because I'm incompetent.
  • I'm not a coding genius so I have nothing to contribute.
  • I'm not a coder so I have nothing to contribute.

Career Panel

Mentorship Program

Merge Stories

What can you do?

Notice a pattern?

The Activity (finally!)

You need:

  1. a piece of paper
  2. a pencil or pen
  3. a partner

Step 1

Think of a contribution you made.

  • How did you find out about the project?
  • How did you figure out if your contribution was good/correct/appropriate?
  • How did you pick a part of it to work on?
  • How did you set up the project?
  • How did you find the parts of the project you needed to add to or alter?

Step 2

What did you need to know?

  • What technical knowledge did you need?
  • What kind of social knowledge did you need?
  • What open source tools did you need to use? Did you need to use version control, issue trackers, IRC?
  • What domain knowledge did you need?

Step 3

How did you learn it?

  • What resources did you use? Project documentation? Tutorials? Stack overflow?
  • Who did you ask for help? Friends? An IRC channel or mailing list? A professor?
  • What resources did you wish you had?
  • What was the hardest thing to learn? What are you most grateful you already knew before starting?

Sharing time!

Thanks!

Many thanks to OpenHatch's amazing volunteer community (especially Asheesh Laroia and Britta Gustafson).

References

Privly Documentation Sprint:
https://www.privly.org/content/operation-improve-docs

Elana Hashman's Google Summer of Code project:
https://hashman.ca/gsoc/

Images (in order)

"Frustration" by Sean MacEntee CC BY 2.0
https://www.flickr.com/photos/smemon/5635400338/
"Peugeot Deconstructed" by soozed CC BY 2.0
https://www.flickr.com/photos/soozed/9480624629
"The New Fred Meyer on Interstate on Lombard" by Lyza CC BY SA
2.0 https://www.flickr.com/photos/lyza/49545547/
"Carson outdoor pool goes to the dogs" by US Army CC BY 2.0
http://www.flickr.com/photos/36196762@N04/4989283309
"Carson outdoor pool goes to the dogs" by US Army CC BY 2.0
http://www.flickr.com/photos/familymwr/4989889796
"Con capa sobre La riñonera" by MaloMalverde CC BY SA 2.0
https://www.flickr.com/photos/malomalverde/8598030211