Slide 1

Slide 1 text

HITCHHIKERS GUIDE TO FREE AND OPEN SOURCE PARTICIPATION

Slide 2

Slide 2 text

@ 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 !

Slide 3

Slide 3 text

ANDREW TRIDGELL r s y n c "TRIDGE" Author of and T h a n k y o u !

Slide 4

Slide 4 text

COMP8440 ANU Australian National University COMP8440 YOUTUBE Lectures

Slide 5

Slide 5 text

WHAT IS "OPEN SOURCE", ANYWAY?

Slide 6

Slide 6 text

LIBRE GRATUIT "FREE" SOFTWARE # e n g l i s h f a i l

Slide 7

Slide 7 text

friː/ Able to act or be done as one wishes; not under the control of another “ ”

Slide 8

Slide 8 text

"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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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 .

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

COPYRIGHT EXCEPTIONS

Slide 13

Slide 13 text

In the beginning there was the command line. BEGINNING OF SOFTWARE > _

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

FOSS Licensing is a Hack on Copyright Copyleft doesn't exist without Copyright. "PROMISE" NOT TO SUE

Slide 17

Slide 17 text

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 .

Slide 18

Slide 18 text

Do you understand the difference? FREE SOFTWARE V. OPEN SOURCE

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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 "

Slide 21

Slide 21 text

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 "

Slide 22

Slide 22 text

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 .

Slide 23

Slide 23 text

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 .

Slide 24

Slide 24 text

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 .

Slide 25

Slide 25 text

//WHY CONTRIBUTE?

Slide 26

Slide 26 text

YOU!

Slide 27

Slide 27 text

AUTONOMY MASTERY PURPOSE WHAT WE REALLY WANT ( n o t m o n e y )

Slide 28

Slide 28 text

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 .

Slide 29

Slide 29 text

"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 .

Slide 30

Slide 30 text

Exposure for Your Projects/Work Exposure for You Employers want: Proof of your Capability BEST CV W a n t j o b s ?

Slide 31

Slide 31 text

"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 .

Slide 32

Slide 32 text

Compelling and challenging Chaotic, Anarchic and Opinionated Serendipitous: Don't know where it will go. We'd do it anyway. (probably) FUN

Slide 33

Slide 33 text

ALL PROJECTS ARE DIFFERENT

Slide 34

Slide 34 text

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 .

Slide 35

Slide 35 text

How old is the project? Where in its lifecycle is it? ~ New project ~ Active progression ~ Mature, maintenance phase ~ Dead KINDS OF PROJECTS

Slide 36

Slide 36 text

How many people are involved? What clear roles are defined? ~ BDFL/s ~ Release Manager ~ Core Developers ~ Governance Structure/Software Foundation KINDS OF PROJECTS

Slide 37

Slide 37 text

Cathedral v. Bazaar Recent research: ~ Foundation ~ Community driven ~ Monarchy KINDS OF PROJECTS

Slide 38

Slide 38 text

2% ~335K projects (maybe) 1500 active WE ARE PYTHON

Slide 39

Slide 39 text

For the Purpose of Contribution 2 TYPES OF PROJECT WE ARE PYTHON

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

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 .

Slide 43

Slide 43 text

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 .

Slide 44

Slide 44 text

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

Slide 45

Slide 45 text

//WHERE DO I FIND PROJECTS? I ' m r e a d y .

Slide 46

Slide 46 text

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

Slide 47

Slide 47 text

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

Slide 48

Slide 48 text

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 "

Slide 49

Slide 49 text

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 . . . )

Slide 50

Slide 50 text

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

Slide 51

Slide 51 text

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 .

Slide 52

Slide 52 text

START SMALL This is not the last time I'm going to say this.

Slide 53

Slide 53 text

#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)

Slide 54

Slide 54 text

#1 Notice Itch, Find Source Seek/Find/Reach out. #2 Work on your Contribution #3 Return your Contributions Notify project, get feedback.

Slide 55

Slide 55 text

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 .

Slide 56

Slide 56 text

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 .

Slide 57

Slide 57 text

"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

Slide 58

Slide 58 text

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 .

Slide 59

Slide 59 text

//AS A CODER

Slide 60

Slide 60 text

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 .

Slide 61

Slide 61 text

Code Review Ticket Triage Help out on the Users list/IRC (fielding questions) AS A CODER

Slide 62

Slide 62 text

The software development methodologies adopted are not the same as those found in closed source development projects. “ ”

Slide 63

Slide 63 text

(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

Slide 64

Slide 64 text

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 .

Slide 65

Slide 65 text

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 "

Slide 66

Slide 66 text

DROP YOUR EGO It's just not cool here. HOW FOSS IS DIFFERENT

Slide 67

Slide 67 text

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

Slide 68

Slide 68 text

DURATION OF PARTICIPATION IS FUNCTION OF SOCIAL ENGAGEMENT

Slide 69

Slide 69 text

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 .

Slide 70

Slide 70 text

//AS A NON-CODER

Slide 71

Slide 71 text

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

Slide 72

Slide 72 text

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 .

Slide 73

Slide 73 text

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 .

Slide 74

Slide 74 text

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 .

Slide 75

Slide 75 text

USE A GIT GUI

Slide 76

Slide 76 text

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

Slide 77

Slide 77 text

//HOW TO PROJECT OWNER Don't ask me. Ask Carl, he's talking about this next.

Slide 78

Slide 78 text

ALSO ASK THESE PEOPLE

Slide 79

Slide 79 text

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 .

Slide 80

Slide 80 text

"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 "

Slide 81

Slide 81 text

Phrase your problem in a way that's easily accessible to the person with the right skills. Offer Recognition GETTING OTHER PEOPLE TO HELP

Slide 82

Slide 82 text

This is one of the main motivations for people to contribute. They're not doing it for the money, after all. GIVE RECOGNITION!

Slide 83

Slide 83 text

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 .

Slide 84

Slide 84 text

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

Slide 85

Slide 85 text

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 !

Slide 86

Slide 86 text

Occasionally ignore everything (except security). Project Leader Churn is also a Thing BURN OUT: TAKE BREAKS

Slide 87

Slide 87 text

SOMEONE NEW COME UP NOW!

Slide 88

Slide 88 text

... 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 .

Slide 89

Slide 89 text

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 .

Slide 90

Slide 90 text

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 %

Slide 91

Slide 91 text

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 .

Slide 92

Slide 92 text

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 "

Slide 93

Slide 93 text

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

Slide 94

Slide 94 text

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

Slide 95

Slide 95 text

CONGRATULATIONS! You are already here. Thank you! Share and enjoy.

Slide 96

Slide 96 text

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 .

Slide 97

Slide 97 text

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 .

Slide 98

Slide 98 text

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 .

Slide 99

Slide 99 text

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 .

Slide 100

Slide 100 text

All too much: THANKS Send an email, tweet say thanks to people for all their hard work. SAY

Slide 101

Slide 101 text

PYTHON DIVERSITY GRANT THANK YOU

Slide 102

Slide 102 text

THE PSF PYCON AUSTRALIA LINUX AUSTRALIA PYLADIES ALL THE THANKS