SlideShare a Scribd company logo
What Every
Successful
Open Source
Project Needs
@spf13
Chief Operator @ Docker



Former Chief Developer
Advocate @ MongoDB,


Author of Hugo, spf13-
vim, Cobra, Afero, Viper
& more
Mainframe Era : 

60s & 70s
• Computer companies sold hardware
• Software was free
• Software was colloborative
• IBM dominates
The Software Era: 

80s - 90s
• Software as a business emerged
• Software companies sold “bits”
• Software was private and proprietary
• Microsoft dominates
The Internet Era:
00s
• Internet changes everything
• Open source movement gains traction
(Linux, Apache, MySQL, PHP)
• Tech selling ads, bits, hardware & services
• Google Dominates
The Free Source Era:
10s
• Technology companies sell Hardware & Services
• Software is becoming free ($$) (Windows 10,
OS X, Android, IOS)
• Game companies still sell bits
• Virtually all software companies are now
participating in open source
Open Source Companies
• Redhat $13B
• Cloudera $3B
• MongoDB $1.6B
• Docker $.5B
• Hortonworks $1B
• Wordpress $1B
Open Source Companies
• Google (Android,
Chrome, Docker, Linux)
• Apple (Webkit, LLVM)
• Facebook (Cassandra,
HipHop, Hive, PHP)
• IBM (Linux, Eclipse,
Docker)
• Yahoo (Hadoop, Linux,
YUI)
• Oracle (Linux, MySQL,
Java)
• Microsoft (Linux, .net,
Docker)
• Intel (Linux)
Open Source
is taking over
the world
Successful
Open
Source
Projects
Need
Purpose
Values
Communication
Users
Contributors
Leadership
Today
we are
focusing
on
Purpose
Communication
Users
Contributors
Successful Open
Source Projects Need
Purpose
Why Start a
Project ?
To scratch 

an itch
Hugo
Static Site Generator in Go 

(200+ already existed, but none in Go)
Missing tool
or library
Cobra & Viper
CLI commander & Configuration management
You wrote
something
others find
useful
spf13-vim
My Personal Vim Configuration… 

now 100+ contributors
You’ve
thought of a
better way to
do something
MongoDB & Docker
Changing the way software is built and run
Successful Open
Source Projects Need
Communication
What is Communication
• What you say
• What you write
• What you do
• What you build
Great
Communication
=
Great writing
Great Writing
• Requires time
• Requires editing
• Requires effort
• Requires practice
Users will have questions
• Need to establish a place for them to
ask questions
• Public is ideal:
• Others can respond
• Others benefit from the response
Forums & mailing lists
• Google groups ok, but hard to search
• Stack Overflow will happen, but not focused
• Forums work best, Discourse is pretty good
• IRC also works well, but realtime and
without integrated search.
README
• Your single most important file
• First thing everyone sees
• Most projects don’t spend enough time
on a readme
• Where you convey your purpose & values
A Good README
Vision, concrete examples, installation instructions, etc
Challenging
Communication
One day at
MongoDB a
couple years ago
we received a
nasty bug report...
What every successful open source project needs
Best way to
read, leave
only the facts
What every successful open source project needs
Only
respond to
the facts
What every successful open source project needs
What every successful open source project needs
Now it’s a
definitive example
on how to
respond to trolls
What every successful open source project needs
Successful Open
Source Projects Need
Users
You need users
• No matter how good a project is, it
can’t succeed without users
• Unless you tell the world about your
project, people will not come
• Unnatural behavior for most engineers
To: Newsgroups: comp.os.inix

Subject: What would you like to see most in minix?

Summary: small poll for my new operating system

Message-ID: <mailto: 1991Aug25.205708.9541@klaava.Helsinki.Fi
Hello everybody out there using minix — I’m doing a (free) operating system (just a hobby,
won’t be big and professional like gnu) for 386 (486) AT clones. This has been brewing since
april, and is starting to get ready. I’d like any feedback on things people like/dislike in minix, as
my OS resembles it somewhat (same physical layout of the file-system (due to practical
reasons) among other things).
I’ve currently ported bash (1.08) and gcc (1.40), and things seem to work. This implies that I’ll
get something practical within a few months, and I’d like to know what features most people
would want. Any suggestions are welcome, but I won’t promise I’ll implement them :-).
Linus (mailto: torvalds@klaava.helsinki.fi)
PS. Yes — it’s free of any minix code, and it has a multi-threaded fs. It is NOT protable (uses
386 task switching etc), and it probably never will support anything other than AT-harddisks,
as that’s all I have :-(.
Focus on the User
• Success depends on a good user
experience
• Contributions come from happy
users
User Experience
• Starts with installation
• What are the first 10 minutes like?
• What could turn a user away?
Good User
Experience
Requires
Listening
Successful Open
Source Projects Need
Contributors
Contributors
are the
lifeblood of
Open Source
Why
Contribute ?
Why Contribute
• It feels good to give back
• Good way to make friends
• Great way to make connections
• Gain exposure / personal branding
Best Software Education
Why Contribute
• Establish actual real life experience
• Better than a resume
• Demonstrates that you can do more
than code
I’m not a developer
• Projects need much more than code
• Like saying “I’m not an actor, so I
can’t work at a movie studio”
Join the
mailing list/
forums
Answer a
question on
the mailing list
Review the
documentation
Write some
documentation
Write a
tutorial
Screencast a
feature
File a Bug
Report
Review
tickets
Try to
reproduce
bugs and add
information
Contribute
logos, icons
& designs
How to
Contribute
Instead of 

“This is Wrong”...
“How can I help?”
Prepare
• Learn the tools of the trade
• Git & Github
• Read the Documentation
• Familiarize yourself with IRC, forums,
& the correct channels
Take Iniative
• Don’t be afraid to try
• Open source loves self starters
• Open source authors are usually very
approachable and open to ideas
• Communicate and collaborate as much as
possible
Ask
• What can I help with?
• I would like to help with X, but
would benefit from some guidance,
can someone guide me?
• If I contributed Y, would that help?
No matter how
slow you go, you
will always lap
those on the
sidelines
How to Get
Contributors
Most projects have very
few contributors
• You must give if you want to get
• Contributors are an investment in
the future of the project
• Contributors pay back many times
what you put in
What every successful open source project needs
Make it Easy to
Contribute
• Use an “open” open source license
(Apache 2.0, MIT, BSD)
• Provide contribution guidelines
• Provide contribution instructions &
tutorials
Treat Contributors Well
• Happier developers will contribute
more
• The more welcome people feel the
more they will help your project
Be Responsive
• Respond to Pull Requests in a
timely manner
• Provide and contribute to a channel
where people can ask questions
• Respond to issues quickly
Invite Contributors
• Overcommunicate that
contributions are welcome
• Ask people to contribute
• Ask. Ask. Ask. Invite. Invite. Invite.
It’s
Dangerous
to Go Alone
Empower Contributors
• When someone shows initative and
history of good contributions make them
a committer
• Resist tempation to control
• If you aren’t able to be responsive,
appoint more committers
Teach
• Don’t ever say no.
• Teach contributors how it can
become a yes
• Newly empowered contributors
contagiously help others
Docker’s Birthday Open-source-a-thon
18 Cities + Online. Mentorship by Go & Docker. Save Whales. 

http://docker.party
We live in an
open source
world
Without
contributions
open source
would not exist
You are the
most
important
contributor
Thank You !

Questions ?Icons made by Freepik are licensed by CC BY 3.0
@spf13

More Related Content

What's hot (19)

PPTX
Guide to open source
Javier Perez
 
PDF
How to Successfully Build a Local (Docker) Community
Mathias Renner
 
PPT
How to "Hack" the DSpace Community
Tim Donohue
 
PDF
Collaborating on GitHub for Open Source Documentation
Anne Gentle
 
PDF
Eclipse e4
Chris Aniszczyk
 
PPTX
Tyrion Cannister Neural Styles by Dora Korpar and Siphan Bou
Docker, Inc.
 
PDF
Contribute 101: Engine/Swarm/ContainerD by Phil Estes
Docker, Inc.
 
PDF
2020 oct zowe quarterly webinar series
Open Mainframe Project
 
PDF
Osgeo incubation-2014
Jody Garnett
 
PDF
IBM Collaboration Solutions Community Meeting 11/11 - OpenNTF
Niklas Heidloff
 
PDF
eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...
Gaetano Giunta
 
PDF
So You Want to be an OpenStack Contributor
Anne Gentle
 
PPTX
NCDevCon 2017 - Cross Platform Mobile Apps
John M. Wargo
 
PPTX
Open Source is Good for Both Business and Humanity - DockerCon 2016
{code}
 
PPTX
Untangling fall2017 week2
Derek Jacoby
 
ODP
Should I Build With Open Source Software?
joelevy1776
 
PPTX
Collaborating on GitHub for Open Source Documentation
Anne Gentle
 
PDF
"Docker For Polyglots" - Nathan LeClaire - YAPC::Asia 2015
nathanleclaire
 
PDF
Deploying Personalized Learning Labs using Docker Swarm by Nate Aune and Bria...
Docker, Inc.
 
Guide to open source
Javier Perez
 
How to Successfully Build a Local (Docker) Community
Mathias Renner
 
How to "Hack" the DSpace Community
Tim Donohue
 
Collaborating on GitHub for Open Source Documentation
Anne Gentle
 
Eclipse e4
Chris Aniszczyk
 
Tyrion Cannister Neural Styles by Dora Korpar and Siphan Bou
Docker, Inc.
 
Contribute 101: Engine/Swarm/ContainerD by Phil Estes
Docker, Inc.
 
2020 oct zowe quarterly webinar series
Open Mainframe Project
 
Osgeo incubation-2014
Jody Garnett
 
IBM Collaboration Solutions Community Meeting 11/11 - OpenNTF
Niklas Heidloff
 
eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...
Gaetano Giunta
 
So You Want to be an OpenStack Contributor
Anne Gentle
 
NCDevCon 2017 - Cross Platform Mobile Apps
John M. Wargo
 
Open Source is Good for Both Business and Humanity - DockerCon 2016
{code}
 
Untangling fall2017 week2
Derek Jacoby
 
Should I Build With Open Source Software?
joelevy1776
 
Collaborating on GitHub for Open Source Documentation
Anne Gentle
 
"Docker For Polyglots" - Nathan LeClaire - YAPC::Asia 2015
nathanleclaire
 
Deploying Personalized Learning Labs using Docker Swarm by Nate Aune and Bria...
Docker, Inc.
 

Similar to What every successful open source project needs (20)

PDF
Hitchhikers Guide to Participating in Open Source - Long Version
Elena Williams
 
PDF
Sustaining Open Source Software
Stephen Walli
 
PPTX
How to get started in Open Source!
Pradeep Singh
 
PDF
Contributing to an Open Source Project 101
POSSCON
 
PPTX
Contributing to Open Source Software
Mike Lively
 
PDF
How to Run a Successful Open Source Java EE Project
philipdurbin
 
PDF
Succeeding with FOSS!
M A Hossain Tonu
 
PPT
Understanding the Meaningful Use of Open Source Software
Chris Mattmann
 
PDF
Scale14x Patterns and Practices for Open Source Project Success
Stephen Walli
 
PDF
Open Your Mind: Open Source in Libraries
Nicole Baratta
 
PDF
Open Source Craft at Twitter
Chris Aniszczyk
 
PDF
Contributing to Open Source
Daniel Stenberg
 
PPT
Quality, Cost, and Governance of Open Source Software
Girl Geek Dinners Milano
 
PPTX
EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open ...
{code}
 
PDF
Ice dec05-04-wan leung
Chun Ming Au Yeung
 
PDF
Why Open Always Trumps Closed?
Exove
 
PDF
How to contribute to large open source projects like Docker (LinuxCon 2015)
Jérôme Petazzoni
 
PDF
The business behind open source
ConFoo
 
PPTX
Open source and then some: An Introduction
Akash Tandon
 
PPTX
Intro to open source - 101 presentation
Javier Perez
 
Hitchhikers Guide to Participating in Open Source - Long Version
Elena Williams
 
Sustaining Open Source Software
Stephen Walli
 
How to get started in Open Source!
Pradeep Singh
 
Contributing to an Open Source Project 101
POSSCON
 
Contributing to Open Source Software
Mike Lively
 
How to Run a Successful Open Source Java EE Project
philipdurbin
 
Succeeding with FOSS!
M A Hossain Tonu
 
Understanding the Meaningful Use of Open Source Software
Chris Mattmann
 
Scale14x Patterns and Practices for Open Source Project Success
Stephen Walli
 
Open Your Mind: Open Source in Libraries
Nicole Baratta
 
Open Source Craft at Twitter
Chris Aniszczyk
 
Contributing to Open Source
Daniel Stenberg
 
Quality, Cost, and Governance of Open Source Software
Girl Geek Dinners Milano
 
EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open ...
{code}
 
Ice dec05-04-wan leung
Chun Ming Au Yeung
 
Why Open Always Trumps Closed?
Exove
 
How to contribute to large open source projects like Docker (LinuxCon 2015)
Jérôme Petazzoni
 
The business behind open source
ConFoo
 
Open source and then some: An Introduction
Akash Tandon
 
Intro to open source - 101 presentation
Javier Perez
 
Ad

More from Steven Francia (20)

PDF
State of the Gopher Nation - Golang - August 2017
Steven Francia
 
PDF
Building Awesome CLI apps in Go
Steven Francia
 
PDF
7 Common Mistakes in Go (2015)
Steven Francia
 
PDF
7 Common mistakes in Go and when to avoid them
Steven Francia
 
PDF
Go for Object Oriented Programmers or Object Oriented Programming without Obj...
Steven Francia
 
PDF
Painless Data Storage with MongoDB & Go
Steven Francia
 
PDF
Getting Started with Go
Steven Francia
 
PDF
Build your first MongoDB App in Ruby @ StrangeLoop 2013
Steven Francia
 
PDF
Modern Database Systems (for Genealogy)
Steven Francia
 
PPTX
Introduction to MongoDB and Hadoop
Steven Francia
 
PPTX
Future of data
Steven Francia
 
PDF
MongoDB, Hadoop and humongous data - MongoSV 2012
Steven Francia
 
KEY
Big data for the rest of us
Steven Francia
 
KEY
OSCON 2012 MongoDB Tutorial
Steven Francia
 
KEY
Replication, Durability, and Disaster Recovery
Steven Francia
 
KEY
Multi Data Center Strategies
Steven Francia
 
KEY
NoSQL databases and managing big data
Steven Francia
 
KEY
MongoDB, Hadoop and Humongous Data
Steven Francia
 
KEY
MongoDB and hadoop
Steven Francia
 
KEY
MongoDB for Genealogy
Steven Francia
 
State of the Gopher Nation - Golang - August 2017
Steven Francia
 
Building Awesome CLI apps in Go
Steven Francia
 
7 Common Mistakes in Go (2015)
Steven Francia
 
7 Common mistakes in Go and when to avoid them
Steven Francia
 
Go for Object Oriented Programmers or Object Oriented Programming without Obj...
Steven Francia
 
Painless Data Storage with MongoDB & Go
Steven Francia
 
Getting Started with Go
Steven Francia
 
Build your first MongoDB App in Ruby @ StrangeLoop 2013
Steven Francia
 
Modern Database Systems (for Genealogy)
Steven Francia
 
Introduction to MongoDB and Hadoop
Steven Francia
 
Future of data
Steven Francia
 
MongoDB, Hadoop and humongous data - MongoSV 2012
Steven Francia
 
Big data for the rest of us
Steven Francia
 
OSCON 2012 MongoDB Tutorial
Steven Francia
 
Replication, Durability, and Disaster Recovery
Steven Francia
 
Multi Data Center Strategies
Steven Francia
 
NoSQL databases and managing big data
Steven Francia
 
MongoDB, Hadoop and Humongous Data
Steven Francia
 
MongoDB and hadoop
Steven Francia
 
MongoDB for Genealogy
Steven Francia
 
Ad

Recently uploaded (20)

PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
DOCX
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
PDF
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
PDF
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
PDF
IoT-Powered Industrial Transformation – Smart Manufacturing to Connected Heal...
Rejig Digital
 
PDF
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
PPTX
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
PDF
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PPTX
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
DOCX
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
IoT-Powered Industrial Transformation – Smart Manufacturing to Connected Heal...
Rejig Digital
 
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 

What every successful open source project needs