Hitchhikers Guide to Free and Open Source Participation by Elena Williams

Hitchhikers Guide to Free and Open Source Participation by Elena Williams

D21717ea76044d31115c573d368e6ff4?s=128

PyCon 2014

April 13, 2014
Tweet

Transcript

  1. HITCHHIKERS GUIDE TO FREE AND OPEN SOURCE PARTICIPATION

  2. @ e l e q u g i t h

    u b . c o m / e l e n a E l e n a W i l l i a m s D j a n g o W e b D e v e l o p e r D j a n g o N e w s P o d c a s t C a n b e r r a P y t h o n U G P e r t h D j a n g o U G D j a n g o C o n A U I n t e r n a t i o n a l P e r s o n o f M y s t e r y N o t i m e !
  3. ANDREW TRIDGELL r s y n c "TRIDGE" Author of

    and T h a n k y o u !
  4. COMP8440 ANU Australian National University COMP8440 YOUTUBE Lectures

  5. WHAT IS "OPEN SOURCE", ANYWAY?

  6. LIBRE GRATUIT "FREE" SOFTWARE # e n g l i

    s h f a i l
  7. friː/ Able to act or be done as one wishes;

    not under the control of another “ ”
  8. "INVENTED" IN A BOARDROOM IN 1998 Term "Free" implicitly threatening

    to them. "OPEN SOURCE" P u b l i c , " o p e n " s o u r c e , s u c h a s a n e w s p a p e r / p h o n e b o o k
  9. FREE LIBRE OPEN SOURCE SOFTWARE DEVELOPMENT F r e e

    S o f t w a r e , O p e n S o u r c e , F O S S , F L O S S
  10. Copy or Transmit Display or Perform Sell Change! (Remix/make Derivative

    works) COPY "RIGHTS" A s s u m e d t o a p p l y a u t o m a t i c a l l y .
  11. fixed in any tangible medium “ ” creator of a

    creative expression “ ” J u r i s d i c t i o n s : r u l e s s a m e , e n f o r c e m e n t v a r i e s . 1 7 U S C § 1 0 2 F r a n k S i l e r " C o p y r i g h t a n d Y o u " P y C o n 2 0 1 3
  12. COPYRIGHT EXCEPTIONS

  13. In the beginning there was the command line. BEGINNING OF

    SOFTWARE > _
  14. None
  15. Richard Stallman FATHER OF FREE SOFTWARE F r e a

    k g e n i u s , M I T A I l a b s
  16. FOSS Licensing is a Hack on Copyright Copyleft doesn't exist

    without Copyright. "PROMISE" NOT TO SUE
  17. Offsets Copy"rights" as "Freedoms (and other stuff) 63 Recognised Licenses

    GPL and LGPL; Apache License; BSD; MIT License; Mozilla Public License 2.0; OPEN SOFTWARE INITIATIVE + 2 8 r e j e c t e d l i c e n s e s .
  18. Do you understand the difference? FREE SOFTWARE V. OPEN SOURCE

  19. kernel source "open" .. but don't copy, change, derive, resell,

    etc
  20. Wait: Am I the Copyright Holder? At what point could

    you re-license Windows? Your own script?: Yes! A framework specific plugin?: .. maybe DERIVED WORKS " C O M P 8 4 4 0 : F O S S a n d t h e L a w "
  21. 15% of all repositories had license files (ie: 85% are

    not FOSS) GITHUB PROJECTS WITH LICENSES " a l l t h e f r u i t s i n t h e f o r e s t a r e p o i s o n o u s "
  22. Would you remember to consider everything? Limitation of Liability Disclaim

    Warranty (or you can still be sued) USE AN OSI LICENSE C a r l w i l l b e t a l k i n g w h i c h l i c e n c e t o c h o o s e a f t e r m e .
  23. Copyright (C) Andrew Tridgell 1992. “ Permission to use, copy

    and distribute this software is given to anyone who wants to, for NON-PROFIT only. You may not charge for this software or any derivatives of it without first contacting the Author. D o n ' t w r i t e y o u r o w n : " C O M P 8 4 4 0 : L i c e n s i n g " ( 3 m i n ) 1 8 y e a r s l a t e r .
  24. Software Freedom Law Centre Software Freedom Conservancy Free Software Foundation

    (FSF) Electronic Frontier Foundation (EFF) Creative Commons, QuestionCopyright, GrokLaw MODERN HEROES W e n e e d m o r e t e c h n i c a l l a w y e r s .
  25. //WHY CONTRIBUTE?

  26. YOU!

  27. AUTONOMY MASTERY PURPOSE WHAT WE REALLY WANT ( n o

    t m o n e y )
  28. Pretty much anything anyone ever does is for this, our

    brains are wired this way. Recognition TO FEEL A SENSE OF CONNECTION M e e t l i k e - m i n d e d p e o p l e .
  29. "SKILL UP" HOW TO BE THE "BEST" Try things don't

    do "during the day" Pursue Perfection BEST SCHOOL D o c o o l t h i n g s w i t h p e o p l e b e t t e r t h a n y o u .
  30. Exposure for Your Projects/Work Exposure for You Employers want: Proof

    of your Capability BEST CV W a n t j o b s ?
  31. "Make the world a better place." Moral values Democracy/Meritocracy But

    not everyone! ETHICS AND ALTRUISM N o t c o o l t o t a l k a b o u t i n o l d - s k o o l p r o j e c t s .
  32. Compelling and challenging Chaotic, Anarchic and Opinionated Serendipitous: Don't know

    where it will go. We'd do it anyway. (probably) FUN
  33. ALL PROJECTS ARE DIFFERENT

  34. How big is the project? How technical and serious is

    the project? What is its scope? KINDS OF PROJECTS C a n ' t i n d e p e n d e n t l y d e r i v e t h i s s t u f f .
  35. How old is the project? Where in its lifecycle is

    it? ~ New project ~ Active progression ~ Mature, maintenance phase ~ Dead KINDS OF PROJECTS
  36. How many people are involved? What clear roles are defined?

    ~ BDFL/s ~ Release Manager ~ Core Developers ~ Governance Structure/Software Foundation KINDS OF PROJECTS
  37. Cathedral v. Bazaar Recent research: ~ Foundation ~ Community driven

    ~ Monarchy KINDS OF PROJECTS
  38. 2% ~335K projects (maybe) 1500 active WE ARE PYTHON

  39. For the Purpose of Contribution 2 TYPES OF PROJECT WE

    ARE PYTHON
  40. MEDIAN: 1 CONTRIBUTOR " W h e n F r

    e e S o f t w a r e I s n ' t B e t t e r " B e n j a m i n M a k o H i l l
  41. Very tiny number of famous projects need: highly skilled, specific

    help. Vast majority of projects need: all the help in the world. VERY BIG AND VERY SMALL
  42. HAVE A BASIC IDEA OF THE PROJECT BEFORE DIVING IN.

    For your own sake. C a n h a v e d i a m e t r i c a l l y o p p o s i n g e x p e r i e n c e s .
  43. TREAD CAREFULLY Some projects have very high expectations. SOME PROJECTS

    ARE FUNNY L i n u x k e r n e l I ' m l o o k i n g a t y o u .
  44. Start where you are Use what you've got Do what

    you can “ ” A l e x " S k u d " B a y l e y
  45. //WHERE DO I FIND PROJECTS? I ' m r e

    a d y .
  46. https://open .org https://github.com/explore http://sourceforge.net/p/forge/helpwanted/ http://teachingopensource.org/ https://opensource.com/ (redhat) http://community.ubuntu.com/contribute/ http://contribute.jquery.org/ hatch

  47. DOMAIN KNOWLEDGE J u s t b e c a

    u s e . . .
  48. What's your interest? What's your strength? What skill do you

    currently want to work on? What problem to you want to solve? What do you do in your spare time? weird form of teamwork P e r s o n a l n e e d / " S c r a t c h i n g y o u r o w n i t c h "
  49. HAVE A GOOD INTERNAL SENSE OF WHEN YOU'RE USING FREE

    SOFTWARE LEARN TO LOOK ( w h i c h I t r u s t e v e r y o n e h e r e d o e s . . . )
  50. Learn to Look for ways you can help. If you

    have the right attitude interesting problems will find you. THINK LIKE A CONTRIBUTOR “ Lesson #4 The Cathedral and the Bazaar G o b e y o n d b e i n g a P a s s i v e U s e r
  51. Details, details, details Isolate, replicate and report bugs properly. Read

    and understand documentation THINK LIKE A CONTRIBUTOR (spelling, cruft, etc). When you find bugs: (for clarity and coherence). R e m e m b e r : Y o u ' r e c o n t r i b u t i n g e f f o r t , i t t a k e s e n e r g y .
  52. START SMALL This is not the last time I'm going

    to say this.
  53. #1 Seek/Find/Reach out notice itch find code (eyeball community) #2

    Do your thing fork, clone poke around code (grep, code, etc) commit, push (to your version) #3 Send back your work pull-request (comment/email)
  54. #1 Notice Itch, Find Source Seek/Find/Reach out. #2 Work on

    your Contribution #3 Return your Contributions Notify project, get feedback.
  55. For your first commit: Punch your weight Play to your

    strengths Have realistic expectations Talk to the project! MY FIRST CONTRIBUTION F i r s t t i m e : L i k e d i n n e r p a r t i e s a n d m a r a t h o n s d o n ' t a t t e m p t s o m e t h i n g y o u ' v e n e v e r d o n e b e f o r e .
  56. Well known projects have: serious, dedicated, committed, professional people working

    on them. T h e s e p e o p l e h a v e t a k e n s e r i o u s t i m e a n d e f f o r t .
  57. "Ecosystem" around big projects ~ Work up ranks (hard work

    over long time). ~ Make plugins. ~ Be a good "Cultural fit". CONCEPT OF "CORE" T r u s t w o r t h y c o m m i t t e r s a r e a v e r y l i m i t e d r e s o u r c e
  58. CONFERENCE SPRINTS! Tools/projects you use. Projects people you know are

    working on. Projects within your "domain". "Learn to look" redux FINDING PROJECTS A f t e r t h e c l o s i n g a d d r e s s i n a b o u t 3 h o u r s .
  59. //AS A CODER

  60. Spend most your time: Reading Code Fixing Testing Maintaining Documenting

    AS A CODER I t ' s n o t a l l a b o u t t h e u b e r - e g o c o m m i t s .
  61. Code Review Ticket Triage Help out on the Users list/IRC

    (fielding questions) AS A CODER
  62. The software development methodologies adopted are not the same as

    those found in closed source development projects. “ ”
  63. (Stable/Working) > (your Ego) Expect to get Rejection but playful,

    friendly, caring rejection. Aspiring to Concensus-Based Perfection (rather than minimum viable product) HOW FOSS IS DIFFERENT P a r t i c u l a r l y i n f a m o u s p r o j e c t s : f r e e ⊄ i d e a l
  64. Learn to take "feedback" (ie criticism) Accepting criticism is actually

    a skill. YOU ARE NOT YOUR CODE. Development is a continuum. HOW FOSS IS DIFFERENT G i v i n g g o o d c o n s t r u c t i v e c r i t i c i s m i s a r e a l l y h a r d s k i l l .
  65. My patch is amazing accept it now. ✗ Who is

    this guy? Do you think this patch is OK? ✓ OMG, God wrote this patch. BE OVERLY MODEST " c o m p l e t e l y a n d s e l f - d e p r e c a t i n g l y t r u t h f u l "
  66. DROP YOUR EGO It's just not cool here. HOW FOSS

    IS DIFFERENT
  67. You are Here by Choice Engage Socially You are statistically

    more likely to stay involved with the project for longer. HOW FOSS IS DIFFERENT I R C , E m a i l , S p r i n t s , U s e r G r o u p s , C o n f e r e n c e
  68. DURATION OF PARTICIPATION IS FUNCTION OF SOCIAL ENGAGEMENT

  69. Ask your employer! Give back donate some of your time

    to the projects you use at work. Openly License your internal packages/projects. THINGS YOU CAN DO S o m e o f t h e s e k i n d s o f p r o j e c t s c a n b e s u c c e s s f u l .
  70. //AS A NON-CODER

  71. 50%-50% FOSS needs non-Coders. FOSS needs to involve non-Coders effectively.

    NON-CODERS M S F , E W B , P r o - B o n o L a w y e r s
  72. Code Review (learning) Every project needs: Designers, Content makers, Writers

    Translations! Many kinds of unusual task! AS A NON-CODER A l l t h e s e t h i n g s t a k e t r e m e n d o u s t a l e n t a n d e f f o r t .
  73. Be Modest and be OK with Yourself Be confident you

    can do something they can't. Beware of the gaping holes in their knowledge outside code and be gentle about this. AS A NON-CODER P r o g r a m m e r s a r e n ' t v e r y s m a r t , t h e y w i l l m i r r o r : i f y o u ' r e c o m f o r t a b l e t h e y w i l l b e .
  74. LEARN TO USE GITHUB Be comfortable with how to make

    contributions and everything else will follow. IF YOU ARE NOT A CODER T h i s i s t h e 2 0 1 4 a d v i c e .
  75. USE A GIT GUI

  76. CONCENTRATE Version Control (particularly git) has a reputation for being

    complicated.
  77. //HOW TO PROJECT OWNER Don't ask me. Ask Carl, he's

    talking about this next.
  78. ALSO ASK THESE PEOPLE

  79. For the love of humanity ... Ensure It’s Possible to

    Run/Install! INSTALLATION AND DEPENDENCIES F o r t u n a t e l y w e a l l u s e v i r t u a l e n v i r o n m e n t s .
  80. "Advertising" helps. Maintenance and care helps. Enough code to convince

    potential co-developers. FIRST TIME?: DON'T EXPECT CONTRIBUTORS " p l a u s i b l e p r o m i s e "
  81. Phrase your problem in a way that's easily accessible to

    the person with the right skills. Offer Recognition GETTING OTHER PEOPLE TO HELP
  82. This is one of the main motivations for people to

    contribute. They're not doing it for the money, after all. GIVE RECOGNITION!
  83. Don't Automatically Reject/Revert Don't let people find out through an

    automated system. Drop a quick note, there's usually a reason. H u m a n s h a t e r e j e c t i o n , c h i p s a w a y a t y o u r s o u l .
  84. Never Know Who's Watching You probably have quality sleepers/lurkers. You

    will never see contribution from people you (or your community's) behavior turns away. ALWAYS BE CORDIAL
  85. According to the research: Average involvement is between: 3 months

    and 2 years. People Change! EMBRACE YOUR CHURN . . . a n d t h e y s h o u l d !
  86. Occasionally ignore everything (except security). Project Leader Churn is also

    a Thing BURN OUT: TAKE BREAKS
  87. SOMEONE NEW COME UP NOW!

  88. ... and are solved by. Communicate! Communicate! 95% human problems

    are caused by ... COMMUNICATE! S h a l l o w a n d o f t e n .
  89. State It Up front State as Simply as Possible brief,

    short, to the point, concise, succint summary, pithy, crisp, incisive ASK/EXPLAIN: BE TERSE “ ” N o f l u f f y l a n g u a g e , n o b i g e x p l a n a t i o n . B e c o r d i a l b u t j u s t g e t t o t h e c o r e o f i t .
  90. Do What You Say You're Going to Do If you

    can’t: Communicate! FOSS people are spectacularly understanding. DON'T SPEAK UP, if you're not "already there". SET EXPECTATIONS 1 8 %
  91. Don’t agonise (spare yourself pain!) Experienced people often can see/feel

    you struggling . ASK! (but will be polite) In short term: it may be intimidating to ask In medium term: you're learning faster T h e y k n o w t h e f e e l b e c a u s e t h e y ' v e b e e n t h e r e .
  92. Everyone does. Everyone is about most things. The "best" leverage

    On feeling stupid: (and are usually very humble). SAYING: I DON’T KNOW N o b e l P r i z e 1 9 9 6 " B u c k m i n s t e r f u l l e r e n e "
  93. Rule of Thumb: If you're stuck for 1⁄2 hour go

    to: IRC, mailing lists, IM, etc ASK! " C o n f e s s i o n s o f J o e D e v e l o p e r " @ p y d a n n y
  94. Decisions are made by the people who show up. User

    Groups, Hackerspaces, Conferences IRC, Email Lists TURN UP “ ” B o t h O n l i n e a n d O f f l i n e
  95. CONGRATULATIONS! You are already here. Thank you! Share and enjoy.

  96. Don't Criticise People's Life Decisions It's a surprisingly small community.

    ON EACH OTHER'S TEAM S a m e p e o p l e c o m e a r o u n d .
  97. Don't Criticise Technical Fixes/Solutions that are Currently Working Rough concensus,

    running code. ON EACH OTHER'S TEAM “ ” U n l e s s y o u h a v e a p a t c h a c t u a l l y d e l i v e r e d . E v e n t h e n b e n i c e .
  98. Don't Criticise other FOSS Projects ... without contacting the project

    first. Send an email or submit a ticket. Pull up anyone else you see doing this. ON EACH OTHER'S TEAM S a v e i t f o r t h e p r o p r i e t a r y w o r l d .
  99. All mistakes will eventually be washed clean by time and

    entropy. Communities are very robust. DON’T GET DISHEARTENED N o b o d y c a r e s h o w m a n y t i m e s y o u f a l l d o w n , O N E f e w e r t h a n t h e t i m e s y o u g e t u p a l l t h a t m a t t e r s .
  100. All too much: THANKS Send an email, tweet say thanks

    to people for all their hard work. SAY
  101. PYTHON DIVERSITY GRANT THANK YOU

  102. THE PSF PYCON AUSTRALIA LINUX AUSTRALIA PYLADIES ALL THE THANKS