There are two parts to the “success” of an open source software project:
Deployment growth: One publishes software to see it used. As the software is used, it reflects the dynamic nature of software, and is used in new ways to solve new problems. This leads to the second part of the success formula -- contributions.
Contribution flow: A free or open source software project is at it’s simplest a discussion in software, and without contributions the conversation fades and fails. From a more complex community perspective, a FOSS project is about the economics of collaborative innovation and development. Without a continuous contribution flow, the dynamic aspect of a software project will become static and brittle and lose its relevancy.
There are three on ramps to be built to drive the success of an open source project: Bringing new users to the project, enabling developers, and encouraging contributors. This talk looks at how these on ramps can be organized to drive growth and adoption, and to grow a successful and vibrant community around an open source project.
The talk was delivered at SCaLE 14x: https://www.socallinuxexpo.org/scale/14x/presentations/patterns-and-practices-open-source-project-success
5. We’ve
shared
software
since
we’ve
written
software
Writing
good
software
is
hard
work
Princeton
USENIX
SHARE
DECUS
MIT
Athena
Free
Software
FountationBerkeley
CSRG
Apache
Linux
Eclipse
Fountation
ASF
8. ROTOR
500K
LoC
500K
Lines-‐of-‐Test
Harness
Ran
on
Windows,
Mac
OS
X,
FreeBSD
One
script
to
set
environment
One
command
to
build
everything
One
command
to
test
it
all
Minimal
documentation
24
hours
later
…
24
hours
later
again
…
14. How
do
you
increase
your
user
base?
(How
do
you
make
it
easy
to
install/configure/use
the
software?)
How
do
you
encourage
developers?
(How
do
you
make
it
easy
to
build/test/experiment?)
How
do
you
make
it
easy
to
contribute?
(What
do
you
communicate
to
your
community)
15. How
do
you
increase
your
user
base?
(How
do
you
make
it
easy
to
install/configure/use
the
software?)
16. How
do
you
increase
your
user
base?
(How
do
you
make
it
easy
to
install/configure/use
the
software?)
Project
Exes
published
Project
Install
Automated
Software
Construction
Activities
Project
BugTracking
17. How
do
you
increase
your
user
base?
(How
do
you
make
it
easy
to
install/configure/use
the
software?)
Project
Exes
published
Project
Install
Automated Software
Construction
Activities
Project
License
FAQs,
Howto
Community
Development
Activities
Project
BugTrackingForums,
Email
19. A
small
(2
minute)
diversion
on
licensing
….
• Software
is
protected
by
copyright
law
• Whoever
wrote
the
software,
owns
the
copyright
• People
often
give
up
copyright
ownership
in
employment
agreements
• There
are
a
few
well
[understood|accepted]
licenses:
pick
one
• These
licenses
define
the
most
successful
collaborations
in
history
• If
you
care
about
making
money:
educate
yourself*
&
hire
a
lawyer
• If
you
[care|worry]
about
patents:
hire
a
lawyer
• If
you
publish
your
project
on
Github: create
the
*%$ing LICENSE
file
Writers|Artists|Engineers|Architectsdo
it.
So
should
you.
*Van
Lindberg's Intellectual
Property
and
Open
Source
20. How
do
you
encourage
developers?
(How
do
you
make
it
easy
to
build/test/experiment?)
21. How
do
you
encourage
developers?
(How
do
you
make
it
easy
to
build/test/experiment?)
Project
Build
Automated
I
Complete
Src
published
Project
Test
Automated
I
Software
Construction
Activities
22. How
do
you
encourage
developers?
(How
do
you
make
it
easy
to
build/test/experiment?)
Project
Build
Automated
I
Complete
Src
published
Project
Test
Automated
I
Software
Construction
Activities
Mission
Statement
Comms
Platform
Contributoion
Guidelines
Community
Development
Activities
Code
of
Conduct
23. A
small
diversion
on
software
engineering
…
• 2
ratios
define
software
development
• All
advances
in
programming
languages
and
software
engineering
is
attempting
to
beat
these
two
ratios
• [Community|Product]
scale
depends
on
reliably
delivering
the
known
executable
environment
every
time
• Linus’s
Law
is
about
REVIEWS
not
BUG
FIXING
24. How
do
you
make
it
easy
to
contribute?
(What
do
you
communicate
to
your
community)
25. How
do
you
make
it
easy
to
contribute?
(What
do
you
communicate
to
your
community)
Project
Build
Automated
II
Project
Test
Automated
II
Basic
Arch
Description
Software
Construction
Activities
26. How
do
you
make
it
easy
to
contribute?
(What
do
you
communicate
to
your
community)
Project
Build
Automated
II
Project
Test
Automated
II
Basic
Arch
Description
Software
Construction
Activities
Governance
Events
Community
Development
Activities
29. How
do
you
make
it
easy
to
contribute?
(What
do
you
communicate
to
your
COMMERCIAL
community)
Project
License
Provenance
Tracking
Repositories
Protected
Dependencies
Documented
Contributions
Auditted
Provenance
Management
Committers
Indemnified
Committer
Governance
Trademark
Management
IP
Management
Activities
30. Foundations
• Henrik
Ingo’s
numbers
• Foundations
provide
neutral
ownership
and
a
level
playing
field
• Bright
lines
for
projects
versus
products
31. Open
Source
Community
Practices
Project
Exes
published
Project
Build
Automated
I
Project
Install
Automated
Complete
Src
published
Project
BugTracking
Project
Build
Automated
II
Project
Test
Automated
I
Project
Test
Automated
II
Basic
Arch
Description
Project
License
Project
License
Mission
Statement
Code
of
Conduct
Forums,
Email
Comms
Platform
FAQs,
Howto
Governance
Contributoion
Guidelines
Events
Provenance
Tracking
Repositories
Protected
Dependencies
Documented
Contributions
Auditted
Provenance
Management
Committers
Indemnified
Committer
Governance
Trademark
Management
IP
Management
Activities
Community
Development
Software
Construction
Maturity
32. Open
Source
Community
Patterns
Project
Exes
published
Project
Build
Automated
I
Project
Install
Automated
Complete
Src
published
Project
BugTracking
Project
Build
Automated
II
Project
Test
Automated
I
Project
Test
Automated
II
Basic
Arch
Description
Project
License
Project
License
Mission
Statement
Code
of
Conduct
Forums,
Email
Comms
Platform
FAQs,
Howto
Governance
Contributoion
Guidelines
Events
Provenance
Tracking
Repositories
Protected
Dependencies
Documented
Contributions
Auditted
Provenance
Management
Committers
Indemnified
Committer
Governance
Trademark
Management
IP
Management
Activities
Community
Development
Software
Construction
Maturity
Encourage
Users
Encourage
ContributorsEncourage
Developers
Encourage
Corp
Contributions