Slide 1

Slide 1 text

Growing Open Source Seeds Kenneth Reitz

Slide 2

Slide 2 text

Hi.

Slide 3

Slide 3 text

@kennethreitz

Slide 4

Slide 4 text

github.com/kennethreitz • ~18 serious projects. • 100+ experiments. • OSX-GCC-Installer: 56TB of downloads. • Requests: 3+ million downloads.

Slide 5

Slide 5 text

Other Interests... • Street Photography • Synthesizers and Music Production • World Travel (~140,000 miles last year) • Public Speaker (29 events last year) • Classic Video Games!

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

Python Software Foundation

Slide 8

Slide 8 text

Once upon a time...

Slide 9

Slide 9 text

Facebook SDK

Slide 10

Slide 10 text

The Facebook SDK • The Facebook SDK was rarely updated. • One day, the library fully stopped working. • Issues were opened, people o ering to help. • HN got wind, one issue had 50+ comments.

Slide 11

Slide 11 text

Facebook’s response was... Disabling the Issue Tracker

Slide 12

Slide 12 text

That’s not open source. It’s public source.

Slide 13

Slide 13 text

Public Source Project • Organization takes a chunk of code and slaps an open source license on it, hoping it’ll be useful to someone else. • Clearly better than keeping it closed source... • Often abandoned due to lack of interest, burnout, or change of focus. • Motivations are unclear.

Slide 14

Slide 14 text

Gittip

Slide 15

Slide 15 text

What is Gittip? • Platform for sustainable crowd funding. • It takes open source to the extreme. • Striving to be the world’s rst truly “open company”.

Slide 16

Slide 16 text

Extreme Open Source • There’s a GitHub issue for everything. • Major decisions are voted for on GitHub. • Interviews with journalists are live-streamed. • All formal discussions with other groups are publicly documented and shared.

Slide 17

Slide 17 text

— Chad Whitacre I’m not building Gittip, I’m building the community that’s building Gittip.

Slide 18

Slide 18 text

Projects like Gittip are... Shared Investment Projects

Slide 19

Slide 19 text

Shared Investments • Shared ownership, extreme transparency. • New contributors can get involved by following a documented process. • Low risk. High bus-factor. • See also: Python, Django, Firefox, jQuery... (projects that aim to change the world)

Slide 20

Slide 20 text

Requests

Slide 21

Slide 21 text

Requests HTTP for Humans

Slide 22

Slide 22 text

HTTP for Humans • One of the most installed PyPi packages. • Downloaded over 3,300,000 times. • Comprised of contributions by 100+ developers. • Considered by many to be an example of great open source.

Slide 23

Slide 23 text

• There’s a key di erence between Requests and Gittip/Django... • Zero of the project’s decisions are made by the community — they are made by me.

Slide 24

Slide 24 text

Between public source and shared investment: Dictatorship Project

Slide 25

Slide 25 text

Dictatorship Projects • A totalitarian BDFL that owns everything. • Dictator is responsible for all decisions. • Community feedback is encouraged, but users with feedback should have no expectation of change.

Slide 26

Slide 26 text

Requests’ Dictatorship • Requests’ value lies in its extreme opinions. • Few people involved allows for quick, precise iteration. • Those opinions could be diluted if more people were involved with the decision making process. • Tragedy of the commons.

Slide 27

Slide 27 text

There are downsides... • The bus factor is extremely low. • The risk of burnout is extremely high. • If the BDFL loses sight of his goals, the project is ruined.

Slide 28

Slide 28 text

Lessons Learned

Slide 29

Slide 29 text

OR BE ON YOUR WAY BE CORDIAL

Slide 30

Slide 30 text

Contributors: Be Cordial • Keep all interactions with a maintainer as respectful as possible. • They have likely donated a signi cant amount of time and energy into their project. • They don’t owe you a moment of their time.

Slide 31

Slide 31 text

Maintainers: Be Cordial • You have the crucial responsibility of being immensely thankful to all contributors. • They are the lifeblood of your project. • Ignore non-constructive feedback. • Some people just take things too seriously.

Slide 32

Slide 32 text

Maintainers: Be Cordial • Be careful with the words you chose. Contributors sometimes take what you say very personally. • Take the opportunity to educate the user. • This could be their rst ever interaction with an open source project. • A little bit of kindness goes a long way.

Slide 33

Slide 33 text

Avoiding Burnout.

Slide 34

Slide 34 text

Sustainability • Sustainability is one of the biggest challenges of open source. • Everyone has a limited amount of time. • It’s easy to become the bottleneck of your own projects.

Slide 35

Slide 35 text

— Wes Beary Open source provides a unique opportunity for the trifecta of purpose, mastery and autonomy. By recognizing the power of these factors, we can keep ourselves motivated and continue to increase our impact.

Slide 36

Slide 36 text

@lukasaoz @sigmavirus24 Meet My Minions These guys are amazing.

Slide 37

Slide 37 text

Learn to Do Less • When an issue or pull request comes into the repo, these guys usually triage it. • This saves an immense amount of time. • I can focus my time on larger issues, while they help contributors make the best of their time and e orts.

Slide 38

Slide 38 text

— Cory Benfield As I fork another of his projects, it occurs to me that I don’t program in the Python ecosystem: I program in the @kennethreitz ecosystem.

Slide 39

Slide 39 text

Just Say No

Slide 40

Slide 40 text

Learn to Say No • Saying ‘No’ is extremely di cult. • People ask for crazy features. They send seemingly practical pull requests. They are trying to help. • If you say yes often, your project will be ruined. Tragedy of the Commons.

Slide 41

Slide 41 text

— Pieter Hintjens Simplicity is always better than functionality.

Slide 42

Slide 42 text

Learn to Say No • Saying ‘No’ is extremely important. • If a new pull request adds some nice features, but adds complexity, say no. • I want as few lines of code in my projects as possible.

Slide 43

Slide 43 text

Simple Code is Good • Code solves problems created by humans. • The less code, the less to maintain. • Negative di s are the best di s. • Small, sharp, distributed services.

Slide 44

Slide 44 text

Complex Code is Bad • Tight coupling, monolithic codebases. • Lurking, growing technical debt. • Maintenance burden is high. • Self-serving instead of problem-solving.

Slide 45

Slide 45 text

Say ‘No’ to All The Things!

Slide 46

Slide 46 text

Open source makes the world a better place.

Slide 47

Slide 47 text

Don’t make it complicated.

Slide 48

Slide 48 text

github.com/kennethreitz Questions?