Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Open Source Survival Guide

Open Source Survival Guide

Collaboration is the key for successful software development. It works best when code can be understood and contributed to by many. Sometimes we think the unwritten rules for successful online collaboration are obvious, but experience has shown again and again that it is not. So let's discuss these rules and write them down so we have them. We will discuss how to make successful code contributions to the projects we all rely on, and offer some strategies for encouraging contributions on our own projects.

blowmage

March 31, 2016
Tweet

More Decks by blowmage

Other Decks in Programming

Transcript

  1. AMA

  2. OPEN SOURCE SURVIVAL GUIDE HOW DID YOU GET THAT GIG?

    Inquisitive Ruby on Ales Attendee I HAVE GOOD FRIENDS WHO HELP ME. Mike Moore, Super Lucky
  3. OPEN SOURCE SURVIVAL GUIDE WHY IS YOUR BEARD SO MAGNIFICENT?

    Salt of the Earth Ruby on Ales Attendee I USE BEARD OIL AND COMB IT OFTEN. Mike Moore, Beard of Destiny
  4. OPEN SOURCE SURVIVAL GUIDE 3 TYPES OF OPEN SOURCE USERS

    Maintainers Collaborators Consumers
  5. OPEN SOURCE SURVIVAL GUIDE LEVEL 1: NOVICE Rigid adherence to

    taught rules or plans No exercise of "discretionary judgment"
  6. OPEN SOURCE SURVIVAL GUIDE LEVEL 2: COMPETENCE Limited "situational perception"

    All aspects of work treated separately with equal importance
  7. OPEN SOURCE SURVIVAL GUIDE LEVEL 3: PROFICIENCY “Coping with crowdedness"

    (multiple activities, accumulation of information) Some perception of actions in relation to goals Deliberate planning Formulates routines
  8. OPEN SOURCE SURVIVAL GUIDE LEVEL 4: EXPERTISE Holistic view of

    situation Prioritizes importance of aspects "Perceives deviations from the normal pattern" Employs maxims for guidance, with meanings that adapt to the situation at hand
  9. OPEN SOURCE SURVIVAL GUIDE LEVEL 5: MASTERY Transcends reliance on

    rules, guidelines, and maxims "Intuitive grasp of situations based on deep, tacit understanding" Has "vision of what is possible" Uses "analytical approaches" in new situations or in case of problems
  10. AMA

  11. OPEN SOURCE SURVIVAL GUIDE 3 TYPES OF OPEN SOURCE USERS

    Maintainers Collaborators Consumers
  12. THE ABSENCE OF A PROGRESSIVE, SMOOTH LEARNING RESOURCE THAT HAS

    NO SUDDEN JUMPS IN COMPLEXITY. Chris Smith OPEN SOURCE SURVIVAL GUIDE
  13. IF THE DOCUMENTATION IS BAD OR PARTIALLY COMPLETE IT CAN

    BE TOUGH TO UNDERSTAND OR IMPLEMENT. Joshua Richardson OPEN SOURCE SURVIVAL GUIDE
  14. I KEEP HEARING I SHOULD START WITH SUPPLEMENTING THE DOCUMENTATION,

    BUT HOW DOES THIS EVEN WORK? Barrett Clark OPEN SOURCE SURVIVAL GUIDE
  15. YOU FIND THE RIGHT SOLUTION BUT IT ISNT DOCUMENTED WELL

    ENOUGH TO UNDERSTAND. Todd Resudek OPEN SOURCE SURVIVAL GUIDE
  16. SOMETIMES THE DOCUMENTATION ASSUMES A CERTAIN LEVEL OF KNOWLEDGE. I

    WOULD LIKE TO SEE MORE HOW-TOS AND STEP-BY-STEP EXAMPLES. Tad Thorley OPEN SOURCE SURVIVAL GUIDE
  17. FINDING DOCUMENTATION NOT WRITTEN BY EXPERTS WHO ASSUME CONTEXT THEY

    DON'T HAVE. Sarah Mei OPEN SOURCE SURVIVAL GUIDE
  18. PEOPLE WHO ARE BIG NAMES IN OPEN SOURCE AND WHO

    YOU LOOKED UP TO TREATING YOU LIKE CRAP. Hsing-Hui Hsu OPEN SOURCE SURVIVAL GUIDE
  19. OPEN SOURCE SURVIVAL GUIDE TYPES OF DOCUMENTATION Code Documentation Method

    descriptions Method arguments Method example code
  20. OPEN SOURCE SURVIVAL GUIDE TYPES OF DOCUMENTATION Library Guides README

    Tutorials, step-by-step instructions Screencasts Books
  21. OPEN SOURCE SURVIVAL GUIDE README What the library does and

    does not Simple code example How to install the library Where to find code documentation Where to find guide documentation
  22. AMA

  23. OPEN SOURCE SURVIVAL GUIDE 3 TYPES OF OPEN SOURCE USERS

    Maintainers Collaborators Consumers
  24. OPEN SOURCE SURVIVAL GUIDE TYPES OF CONTRIBUTIONS Code - Maintainers,

    Collaborators Documentation - Maintainers, Collaborators, Consumers Organization - Maintainers, Collaborators, Consumers Software User Groups Conferences
  25. OPEN SOURCE SURVIVAL GUIDE ENCOURAGING FIRST-TIME CONTRIBUTIONS CONTRIBUTING Setting up

    developer environment Contacting Maintainers (IRC, Gittter, Mailing List, etc.) Running Tests Code Conventions
  26. OPEN SOURCE SURVIVAL GUIDE AUTOMATING CONTRIBUTIONS Rubocop Automated Build (Travis-CI,

    Circle CI, etc.) First-time Issue Labels (easy, first time, help wanted, etc.) Vagrant
  27. AMA

  28. OPEN SOURCE SURVIVAL GUIDE 3 TYPES OF OPEN SOURCE USERS

    Maintainers Collaborators Consumers
  29. I FOUNDED AND ORGANIZE A MEETUP SPECIFICALLY DESIGNED TO CREATE

    A WELCOMING ENVIRONMENT. Hsing-Hui Hsu OPEN SOURCE SURVIVAL GUIDE
  30. OPEN SOURCE SURVIVAL GUIDE SURVIVING WITH HELP FROM USER GROUPS

    Simply be active in a User Group! Find a Beginner-friendly User Group Start a Beginner-friendly User Group Help Organize a User Group “My First Pull Request” Night
  31. I DON'T KNOW THAT YOU CAN LEARN A LOT ABOUT

    THIS BEFOREHAND. A LOT OF OPEN SOURCE KNOWLEDGE COMES FROM JUST CONTRIBUTING. YOU WILL MAKE MISTAKES. YOU WILL GET FRUSTRATED. IT IS NOT EASY... Eileen Uchitelle OPEN SOURCE SURVIVAL GUIDE
  32. BUT, IF YOU REMEMBER THAT EVERYONE IS HUMAN AND TREAT

    THEM AS SUCH, APOLOGIZE WHEN NECESSARY, AND WRITE GOOD EXPLANATIONS (AND COMMIT MESSAGES!) YOU WILL LEARN SO MUCH FROM CONTRIBUTING TO OSS. Eileen Uchitelle OPEN SOURCE SURVIVAL GUIDE
  33. LEARNING TO COMMUNICATE "REMOTELY". WE'RE SO USED TO WORKING RIGHT

    WITH THE PEOPLE WHO WROTE THE PREVIOUS CODE IN OUR APPS IT CAN BE HARD TO ADJUST YOUR WRITING STRUCTURE AND TONE… Eileen Uchitelle OPEN SOURCE SURVIVAL GUIDE
  34. FOR COMMUNICATING WITH SOMEONE A) YOU DON'T KNOW AND B)

    THROUGH TEXT. ADDITIONALLY, EMOTIONAL INTELLIGENCE IS VERY IMPORTANT TO COMMUNICATING EFFECTIVELY… Eileen Uchitelle OPEN SOURCE SURVIVAL GUIDE
  35. DON'T BLAME OR HARASS MAINTAINERS FOR PROBLEMS, INSTEAD HELP THEM

    FIX IT. Eileen Uchitelle OPEN SOURCE SURVIVAL GUIDE
  36. WHEN SOMEONE WE HAVE BEEN BLAMING BECOMES REAL TO US,

    WE CHANGE. WE BECOME A PERSON WHO SEES ANOTHER PERSON AS REAL. WE CHANGE FROM BEING ACCUSING, GUARDED, AND SELF-ABSORBED TO BEING OPEN, SELF-FORGETFUL, AND WELCOMING. Terry Warner OPEN SOURCE SURVIVAL GUIDE
  37. AMA