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

Hitchhikers Guide to Free and Open Source Parti...

PyCon 2014
April 13, 2014

Hitchhikers Guide to Free and Open Source Participation by Elena Williams

PyCon 2014

April 13, 2014
Tweet

More Decks by PyCon 2014

Other Decks in Technology

Transcript

  1. @ 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 !
  2. friː/ Able to act or be done as one wishes;

    not under the control of another “ ”
  3. "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
  4. 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
  5. 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 .
  6. 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
  7. 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
  8. FOSS Licensing is a Hack on Copyright Copyleft doesn't exist

    without Copyright. "PROMISE" NOT TO SUE
  9. 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 .
  10. 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 "
  11. 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 "
  12. 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 .
  13. 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 .
  14. 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 .
  15. 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 .
  16. "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 .
  17. Exposure for Your Projects/Work Exposure for You Employers want: Proof

    of your Capability BEST CV W a n t j o b s ?
  18. "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 .
  19. 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 .
  20. How old is the project? Where in its lifecycle is

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

    ~ BDFL/s ~ Release Manager ~ Core Developers ~ Governance Structure/Software Foundation KINDS OF PROJECTS
  22. 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
  23. 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
  24. 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 .
  25. 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 .
  26. 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
  27. 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 "
  28. 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 . . . )
  29. 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
  30. 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 .
  31. #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)
  32. #1 Notice Itch, Find Source Seek/Find/Reach out. #2 Work on

    your Contribution #3 Return your Contributions Notify project, get feedback.
  33. 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 .
  34. 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 .
  35. "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
  36. 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 .
  37. 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 .
  38. The software development methodologies adopted are not the same as

    those found in closed source development projects. “ ”
  39. (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
  40. 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 .
  41. 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 "
  42. 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
  43. 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 .
  44. 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
  45. 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 .
  46. 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 .
  47. 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 .
  48. 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 .
  49. "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 "
  50. Phrase your problem in a way that's easily accessible to

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

    contribute. They're not doing it for the money, after all. GIVE RECOGNITION!
  52. 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 .
  53. 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
  54. 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 !
  55. ... 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 .
  56. 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 .
  57. 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 %
  58. 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 .
  59. 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 "
  60. 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
  61. 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
  62. 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 .
  63. 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 .
  64. 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 .
  65. 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 .
  66. All too much: THANKS Send an email, tweet say thanks

    to people for all their hard work. SAY