Community building lessons from Ansible

40
Building a Community in an Accelerated World Michael DeHaan and Greg DeKoenigsberg

Transcript of Community building lessons from Ansible

Page 1: Community building lessons from Ansible

Building a Community in an Accelerated World

Michael DeHaan and Greg DeKoenigsberg

Page 2: Community building lessons from Ansible

BONA FIDESWho are these guys, anyway?

Page 3: Community building lessons from Ansible

ABOUT GREGFedora, OLPC, Eucalyptus

Once upon a time, I read a paper

Modularity and Option Value

Page 4: Community building lessons from Ansible

ABOUT MICHAELLots of systems management tech

Cobbler, Func

Startups

Page 5: Community building lessons from Ansible

WHAT IS ANSIBLE?Config mgmt, App deployment, Cloud, Orchestration

just manages machines over SSH

expresses configuration and processes in YAML

based on Python, but supports other languages

Page 6: Community building lessons from Ansible

LINUX REACHED 100+ CONTRIBUTORS A MONTH IN YEAR 11

1 contributor (Linus Torvalds), August 1991

102 contributors, March 2002

https://www.openhub.net/p/linux

Page 7: Community building lessons from Ansible

ANSIBLE REACHED 100+ CONTRIBUTORS A MONTH IN YEAR 2

1 contributor (Michael DeHaan), February 2012

115 contributors, March 2014

https://www.openhub.net/p/ansible-ssh

Page 8: Community building lessons from Ansible

WHAT'S CHANGED?And how do you manage an open source project in this new

world?

Page 9: Community building lessons from Ansible

KEYS TO OUR SUCCESS1. We overcommunicate

2. We use Github wisely

3. We design for first experience

4. We design for modularity

5. We gather the right data for decisions

Page 10: Community building lessons from Ansible

1. OVERCOMMUNICATE

Page 11: Community building lessons from Ansible

EMAIL FOR LONG-FORM DISCUSSIONSWhen someone bothers to ask a question...

any question...

they've invested time in your project.

Answer them.

Page 12: Community building lessons from Ansible

IRC FOR REAL-TIME DISCUSSIONSWhen people need help now, be present.

This takes commitment until you have a community of users.

Almost 50% of our time in early stages of the project

Do allow your community to become self-sufficient.

Page 13: Community building lessons from Ansible

TWITTER FOR BUZZChatter and banter are great,

but problems can't be solved in 140 characters.

Drive discussions to the mailing list.

Review Twitter daily.

Page 14: Community building lessons from Ansible

DON'T TAKE CRITICISM PERSONALLYRespond to what requires a response.

Don't feed the trolls.

Don't do drama, and don't be afraid to ban problem users.

Page 15: Community building lessons from Ansible

WHAT SUCCESS LOOKS LIKE900 users on IRC

3500 ansible-project

8000+ stars on GitHub

2500+ forks, 38% turn into contributions

Page 16: Community building lessons from Ansible

REMEMBER: QUIET PROJECTS ARE FAILED PROJECTS.

Page 17: Community building lessons from Ansible

2. USE GITHUB WISELY

Page 18: Community building lessons from Ansible

THE OLD WAYS ARE GONESix million users are on Github.

Other issue trackers and code systems require different logins.

They all use the same tools.

They all have the same expectations.

And they contribute way more freely.

Page 19: Community building lessons from Ansible

USE THE ISSUE TRACKERThe ticket system is flexible (and kind of horrible). Use it.

Prioritize issues quickly.

Ask for more information.

Template your responses.

Enlist bots if needed

Page 20: Community building lessons from Ansible

DO NOT MERGE EVERY SINGLE REQUESTYou are the upstream.

You are responsible for quality.

Review patches even if it takes time.

Mentor contributors where possible.

Take the time to figure out your trusted contributors.

Page 21: Community building lessons from Ansible

WHAT SUCCESS LOOKS LIKESuccess is having too much work

Several dozens of new pull requests, tickets, and emails a day

~900 people on IRC!

Hundreds of tweets in Japanese you don't understand :)

Page 22: Community building lessons from Ansible

3. DESIGN FOR FIRST EXPERIENCE

Page 23: Community building lessons from Ansible

CAN'T INSTALL SIMPLY IN 15 MINUTES?Keep working on it.

Page 24: Community building lessons from Ansible

CAN'T GET A WORKING EXAMPLE UP IN A LUNCH HOUR?Keep working.

Page 25: Community building lessons from Ansible

DOCUMENTATION CONFUSES PEOPLE?Keep working on it.

Page 26: Community building lessons from Ansible

WHAT SUCCESS LOOKS LIKEHappy users

Users starting meetups

...

Page 27: Community building lessons from Ansible

4. MODULARITY IS CRITICAL

Page 28: Community building lessons from Ansible

HUGE SCALE IS A FUNCTION OF ARCHITECTURE

Page 29: Community building lessons from Ansible

WHAT SUCCESS LOOKS LIKE240+ modules in core

Users/customers join development community (Gawker, Zynga,etc)

Vendors stepping up to help (Google, Rackspace, etc)

Page 30: Community building lessons from Ansible

5. GATHER THE RIGHT DATA FOR DECISIONS

Page 31: Community building lessons from Ansible

PAY ATTENTION TO WEB TRAFFICOur docs site is awesome for this

Page 32: Community building lessons from Ansible

WHEN IN DOUBT, ASKSurveyMonkey is free and worth it

Got a question? Ask!

Page 33: Community building lessons from Ansible

Finally...

DON'T BE AFRAID TO DO SOMETHING THAT'S "BEEN DONE"

Page 34: Community building lessons from Ansible

ISN'T CONFIGURATION MANAGEMENT KINDA DONE?Nope. Not even close.

(also, it's not all config management)

Page 35: Community building lessons from Ansible

TAKING ON THE INCUMBENTBy the numbers

Page 36: Community building lessons from Ansible

CONTRIBUTORSThe people who help build the software

Puppet: 41 per year of life (8 years, 329 contributors)

Ansible: 450 per year of life (2 years, 899 contributors)

Page 37: Community building lessons from Ansible

FORKSThe people who might help build the software in the future

Puppet: 147 per year of life (8 years, 1181 forks)

Ansible: 1253 per year of life (2 years, 2507 forks)

Page 38: Community building lessons from Ansible

STARSThe people who rate the software highly

Puppet: 330 stars per year of life (8 years, 2653 stars)

Ansible: 4033 stars per year of life (2 years, 8066 stars)

Page 39: Community building lessons from Ansible

A GOOD IDEA IS ALWAYS A GOOD IDEA

Page 40: Community building lessons from Ansible

THANKSMichael: @laserllama

Greg: @gregdek

Questions?