[Webinar] SpiraTest - Setting New Standards in Quality Assurance
10 secrets to sustainable open source communities
1. 10 Secrets to Sustainable
Open Source Communities
IWishIKnew
HowToQuitYou
Tuesday, July 23, 13
2. WTF is Plone and why are you talking to me?
Plone:Python CMS
Work began: 1999
First release: 2003
Working with Plone for
~11 years, heavily
involved in the last 5
Step 1: Get Frustrated
Step 2: Get Involved
Open Source code is a
love/hate cycle.
Community is what pulls
you out of the troughs.
Plone.org @eleddyHeavily involved: core & collective contributor, QA team lead, sprint leader, 4.x Framework team, foundation board
member, general grouch and ass kicker, token female, conference organizer, speaker
Tuesday, July 23, 13
3. How unpopular *is* Plone?
Plone -> Zope
Zope ~= STD*
unfortunately, most people think
(the social stigma is far worse than the actual symptoms)
I know what you are thinking, it can’t be THAT bad...
Plone.org @eleddy* That would be the disease version, not the library.
Tuesday, July 23, 13
4. ILovePlone
At the end of the day, I admit it:
and I want everyone to love their
community just as much
Tuesday, July 23, 13
5. Whether you are just getting started in open source or trying to build a
community around your project, you should decide what else you want out of a
project. Communities come in all shapes and sizes.
Take Time to
ChoseYourOwnAdventure
Participating in Open Source
can be more than just
pushing code around
First people I talk to in the
morning (pre-coffee even!)
and the last people I talk to
at night
Plone outlasted 2 3 major
relationships, too many
minor ones, 3 cities, 4
“normal” jobs, 2 startups
Worldwide network of
coworkers/friends/
extended family
Plone.org @eleddy
Tuesday, July 23, 13
7. It’s about the community, stupid.
Discuss, communicate, react and think
LongTerm
Feature Planning
Testing
Infrastructure
Marketing
Code Cleanup
Conferences/Sprints
Legal Issues
Documentation
Support
Are you in it for the long haul or
jumping from one fad to the next?
Plone.org @eleddy
Tuesday, July 23, 13
8. People move on, even BDFL’s. How would your community react to the loss of a
key leader? What about a key company? What happens to progress of a key
feature when someone meets a girl or (*gasp*) starts a family?
Continued success depends on a carefully crafted
LeadershipPipeline
Does the success of your community depend on the
success of a specific company?
A broad base of “casual participants” is just as important
as a core group of “hard cores”
Life happens! Teams and major features should be led by
2+ people.
Key people will turn over; plan accordingly.
Step down to make way for new blood
Plone.org @eleddy
Tuesday, July 23, 13
10. If Zope 4 is any indication, Ploners tend to be stubborn. The make up for it with a fantastic accuracy of hindsight.
If at first you don’t succeed, try, try again.
EmbraceChange
• Upgrade to modern tools (e.g. version control)
• Admit a core feature was a mistake, poorly
implemented, and/or poorly received. Take it out of
core. Not sure how to get started? Ask a Ploner.
• Adapt code conventions, then move on. Don't fret if
your codebase isn’t 100% consistent with whats hip.
• Feature X might come in years too late: don’t be
afraid to leave it out of core
• If you decide to do something different than status
quo, decide where you want to lead and where you
want to integrate
Plone.org @eleddy
Tuesday, July 23, 13
11. Nate Silver poops graphs better than this, but I’m not Nate Silver. *sigh*
MeasureSuccess
When a new technology
gets some attention, there
is the tendency to believe
that existing, mature
platforms are dying.
Bad sentiment is hard to
combat. Counter attack by
measuring community
success like you would
performance: very carefully.
Then hack it!
Average monthly activity on the Plone developers
mailing list turns out to be a good indication of
sentiment. People post more when they are involved
and care about the direction of the product.
2.1
3.0
4.0
Unpopular Release +
Recession =
Trough of Ugh
2.5
Major Releases:
Plone.org @eleddy
Tuesday, July 23, 13
12. Constantly think about how to properly
TackleCore
• Reusable infrastructure is overrated. Reusable css,
javascript, and design frameworks are NOT.
• Too much “core” makes it hard to
• release often
• ramp up new developers
• find possible issues with bug fixes
• Too many “add ons” and people are confused
• What is the *right* way to do X?
• How do I know whats out there?
• Core code is maintained better but released slower
Plone.org @eleddy!@#$ tradeoffs
Tuesday, July 23, 13
14. Huge efforts to translate core documentation have been immensely helpful. Still need better tools to present.
It’s easy to forget about the
LanguageBarrier
• Many people speak English, but they don’t “prefer” it
• Takes much longer to respond to mailing list wars in
another language
• Often misinterpreted (and they know it)
• Non-native speaker != not smart enough
• Local community brings in new people faster, maintains
longer
• Huge intimidation factor
Plone.org @eleddy
Tuesday, July 23, 13
15. It’s not just for food sourcing:
EmbraceLocal
• Have IRC channels in multiple languages (e.g. #plone-es)
• Host mailing lists in multiple languages
• Encourage local language symposia
• Invite international speakers/sprinters to share culture
• Translate “how to contribute” docs!
• Be patient and slow down (typing too)
• Redirect to locals when the barrier is too much
• Identify regional leaders and ask how you can help
Plone.org @eleddy
Tuesday, July 23, 13
16. 2013: Plone Strategic Sprints
It is not uncommon for the nordic dwellers to go to South America in the winter. And not just for the women...
Travel isn’t just for vacation
LocationBarrier
The best part of working with the world is experiencing it! Take your
sprints around the world and everyone wins.
Plone.org @eleddy
Not sure what a sprint is? See: http://
www.slideshare.net/eleddy/uwosh for
more jibber jabber on why sprints
ROCK! Sprint hot spots by year (10 years)
Tuesday, July 23, 13
17. “Diversity” does not mean “women”. It means different countries, backgrounds,
sexual preferences, clients and pants. The Plone community is tolerant of slim,
straight, tall, short, unisex, imported and even apple bottom.
And we love working together to boot. o/
A global, well traveled community creates
NaturalDiversity
The 2013 Plone Foundation
Executive Board: 7 people
representing 4 countries, 5
accents, 3 sexual
preferences (openly), non-
profit, for profit, big
companies, individual
contractors, and
personalities ranging from
troll to peace maker.
Plone.org @eleddy
Tuesday, July 23, 13
19. Never underestimate the impact that one voice can have on the
tone of a community!
Just try it. The first time is the hardest.
SpeakUp
Ask for help
Ask for feedback
Ask for code review
Offer your time
Offer your opinion
Dish out THANK
YOU’s like they are
going out of style
➡ I’m happy to mentor
➡ I care what you think
➡ I want to get better
➡ I know you are busy
➡ I care enough not to +1
➡ It comes back around,
and when you need it
the most
Plone.org @eleddy
Tuesday, July 23, 13
20. Keeps dev.plone.org running,
deals with my constant
badgering. IP, domains,
servers: he does it all. Do you
know who keeps your public
sites running?
aka martior
Martin Reistadbakk
Writes and publishes articles
on plone.org and features
about people doing great
things in the community. She
responds immediately and
publishes just about weekly.
aka rosepruyne
Rose Pruyne
Came out of no where and
started fixing several bugs a
week. Has p0wned the bug
tracker lately.
aka maartenkling
Maarten Kling
Leads and motivates people to
participate in the task that no
developer wants to touch:
documentation. Fearless helper
of newbies in IRC, extreme
blogger, moo is known to wield
a katana.
aka moo9000, moo
Mikko Ohtamaa
Nothing is magic: there is a face behind everything
Recognize people working
BehindtheScenes
and keep them happy!
Plone.org @eleddy
Tuesday, July 23, 13
22. Vision and strategy cannot be realized if not supported by the culture. Culture
outgrows leadership and furthermore, it can be changed.
CultureEatsStrategy
Culture is best perpetuated
in person
Alliances are best formed in
person
Trust is created &
maintained in person
BUT! OSS operates in a
primarily remote arena
Transparency => essential
Never underplay the
importance of meeting in
person
Foundation has capacity to
spend $, influence culture
New people -> established
sprints/conferences
Established people -> new
sprints/conferences
Plone.org @eleddy
(for breakfast)
Tuesday, July 23, 13
23. Having a good heart and best intentions doesn’t solve trust issues, especially
with remote work. Human drama is inevitable, fiscally motivated and otherwise.
Build in safety switches ahead of time.
Never underestimate the need to
BeTransparent
Prefer teams to individuals
Fairly represent your users
(read:diversify)
Explicit is better than
implicit
Nothing can be implied or
assumed
Identify and unempower
toxic people
Spontaneous apathy is a
canary, address it head on
Discuss and make major
decisions in public eye
Avoid side channel culture
Plone.org @eleddy
Tuesday, July 23, 13
24. Avoid the temptation to focus on code as the key result of a sprint
RedefineDeliverables
• Coders > code
• Friends > coworkers
• Hangovers > pull requests
• Participants > observers
• Questions > answers
• Opinionated trolls > *
• Leaders > minions
• Style > class
Plone.org @eleddy@regebro demonstrates the Plone way to get to a conference: in a 32 foot RV, with a bottle of Cyrus Noble
Tuesday, July 23, 13
27. If you plan on sticking around, you are going to need some serious
SoftSkills
Plone.org @eleddy
• Businesses need to believe its valuable to invest in your
project LONG TERM (fiscally, mentally, training, etc)
• READ: someone has to speak “business”
• Who is going to handle legal and fiscal issues?
• End user documentation and tutorials should rarely be
done by developers
• Is neck beard going to man your conference booth?
• Marketing: Someones gotta do it
• Get non-developers to your sprints and NEVER LET GO!
HINT: They like free beer too.
Tuesday, July 23, 13
29. http://github.com/eleddy/collective_stats_logviewer
RealProblems
Noisebridge hackerspace advanced Python
class wanted to learn flask
I was very, very tired of the same “TODO”
app tutorial
Learned flask, sqlalchemy, logs and
rotation, basic linux admin, git, modular
coding, contributing to open source
Plone gets a new web based performance
analysis tool, they get a “github resume”
Tools and infrastructure seem tangentially
related to the project at hand but offer real
life learning experience
Participating in open source can be very
indirect. Volunteer and teach them to build
tools for you. Everyone wins.
Plone.org @eleddy
Take advantage of students and give them
Tuesday, July 23, 13
31. * There are other companies that kill projects. Oracle is just the best at it.
Think twice before contributing to projects without a
Non-ProfitFoundation
Trademark/IP/Legal
Marketing
Organize Teams
Conference Planning
Fundraising
Back Office
Infrastructure
Protect project from death
by Oracle*
? Technical Decisions
The role of the foundation is defined by its
members. It’s as fluid as the project is.
Plone.org @eleddy
Tuesday, July 23, 13
33. Diverse, self-policing, redundant teams
Release Manager
elects
pays an ungodly low wage to
Foundation Members
Foundation Board
attempts to corral
Framework Team
UI Team
Documentation Team
Security Team
Infrastructure Team
PloneGovernance
it’s
complicated
bootstraps
Thank you
Matthew
Wilkes for
writing this
script!
Plone.org @eleddy
Tuesday, July 23, 13
34. Works just fine for many projects!
TightControl
Plone.org @eleddy
Tuesday, July 23, 13
35. The barrier to become a Plone core contributor is surprisingly low. There has never
been a commit from a “newbie” that has jeopardized the project. While more eyes
make all bugs shallow, test coverage and continuous integration is really the star.
Pride 2.0
Core contributions instill a sense of pride and ownership, which in turn
EnsureLongevity
Plone currently has 210
“active” contributors to the
CORE project. Hundreds
more in the collective and
more than 710 contributors
overall. Each conference/
sprint brings in ~10-20 new
contributors. Most are
casual bug fixers and we are
100% on board with that.
Plone.org @eleddy
Tuesday, July 23, 13
36. You are responsible for the energy you
bring into this room!
BeAwesome
ExpectAwesome
Tip #10
Tuesday, July 23, 13