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.

Cd8da976054ea4915eafc5d9dd096d38?s=128

blowmage

March 31, 2016
Tweet

Transcript

  1. OPEN SOURCE SURVIVAL GUIDE @blowmage Presents…

  2. None
  3. None
  4. None
  5. :mlpbeer:

  6. AND NOW FOR SOMETHING COMPLETELY DIFFERENT

  7. 18 MONTHS

  8. FULL TIME

  9. OPEN SOURCE

  10. AMA

  11. 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
  12. 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
  13. 3 TYPES OF OPEN SOURCE USERS

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

    Maintainers Collaborators Consumers
  15. DREYFUS MODEL OF SKILL ACQUISITION

  16. Mastery Expertise Proficiency Competence Novice OPEN SOURCE SURVIVAL GUIDE DREYFUS

    MODEL OF SKILL ACQUISITION
  17. OPEN SOURCE SURVIVAL GUIDE LEVEL 1: NOVICE Rigid adherence to

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

    All aspects of work treated separately with equal importance
  19. 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
  20. 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
  21. 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
  22. PRAGMATIC THINKING AND LEARNING BY ANDY HUNT

  23. AMA

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

    Maintainers Collaborators Consumers
  25. DOCUMENTATION

  26. THE ABSENCE OF A PROGRESSIVE, SMOOTH LEARNING RESOURCE THAT HAS

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

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

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

    ENOUGH TO UNDERSTAND. Todd Resudek OPEN SOURCE SURVIVAL GUIDE
  30. 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
  31. LACK OF SUPPORT AND DOCUMENTATION. Jon Jensen OPEN SOURCE SURVIVAL

    GUIDE
  32. FINDING DOCUMENTATION NOT WRITTEN BY EXPERTS WHO ASSUME CONTEXT THEY

    DON'T HAVE. Sarah Mei OPEN SOURCE SURVIVAL GUIDE
  33. 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
  34. OPEN SOURCE SURVIVAL GUIDE DOCUMENTATION Finding Documentation GitHub Page RubyDocs.info

    Reading Source Code
  35. OPEN SOURCE SURVIVAL GUIDE TYPES OF DOCUMENTATION Code Documentation Method

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

    Tutorials, step-by-step instructions Screencasts Books
  37. 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
  38. THIS IS HARD

  39. EMPATH

  40. OPPORTUNITY

  41. AMA

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

    Maintainers Collaborators Consumers
  43. CONTRIBUTING

  44. OPEN SOURCE SURVIVAL GUIDE TYPES OF CONTRIBUTIONS Code Documentation Organization

    Software User Groups Conferences
  45. OPEN SOURCE SURVIVAL GUIDE TYPES OF CONTRIBUTIONS Code - Maintainers,

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

    developer environment Contacting Maintainers (IRC, Gittter, Mailing List, etc.) Running Tests Code Conventions
  47. 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
  48. AMA

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

    Maintainers Collaborators Consumers
  50. SURVIVING

  51. USER GROUPS

  52. I FOUNDED AND ORGANIZE A MEETUP SPECIFICALLY DESIGNED TO CREATE

    A WELCOMING ENVIRONMENT. Hsing-Hui Hsu OPEN SOURCE SURVIVAL GUIDE
  53. 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
  54. 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
  55. 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
  56. COMMUNICATION

  57. 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
  58. 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
  59. DON'T BLAME OR HARASS MAINTAINERS FOR PROBLEMS, INSTEAD HELP THEM

    FIX IT. Eileen Uchitelle OPEN SOURCE SURVIVAL GUIDE
  60. “THE BOX”

  61. LEADERSHIP AND SELF-DECEPTION THE ABRIDGER INSTITUTE

  62. SELF-DECEPTION

  63. “EXPERIENCING OTHER PEOPLE OR CIRCUMSTANCES AS HAVING MORE POWER OVER

    OUR OWN HAPPINESS THAN WE DO.”
  64. I'M SORRY YOU FEEL THAT WAY. Mike Moore, Professional Idiot

    OPEN SOURCE SURVIVAL GUIDE
  65. STORY TIME

  66. JUSTIFICATION IS THE ADULT VERSION OF BLAMING OTHERS

  67. OBJECTS

  68. None
  69. 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
  70. TIME MACHINE

  71. THE RECONSIDERATION EXERCISE

  72. None
  73. COOPERATIVE GAME

  74. AMA

  75. None
  76. None
  77. None
  78. None
  79. None
  80. None
  81. None
  82. THANK YOU!