Freeloaders	are	Essential
and	Other	Open	Source	Product	
Truths
Stephen	R.	Walli
@stephenrwalli
stephen.walli@gmail.com
Patterns	and	Practices	for	
Open	Source	Project	Success
Stephen	R.	Walli
@stephenrwalli
stephen.walli@gmail.com
WTFOSS*
Stephen	R.	Walli
@stephenrwalli
stephen.walli@gmail.com
*	Hat	tip	to	@codepope
There	is	NO Open	Source	
Business	Model
Stephen	R.	Walli
@stephenrwalli
stephen.walli@gmail.com
Community
We’ve	known	how	communities	
work	since	you	had	a	campfire	
and	I	wanted	to	sit	beside	it
We	are	social	animals;	
community	is	what	we	do	
Courtesy	is	how	we	survive	one	
another	and	feel	safe	in	strange	
communities
There’s	nothing	 new	here
1950 1960 1970 200019901980 2010
Code	sharing
At	Princeton	
IAS	in	late	
1940s
IBM	“SHARE”	
Conf &	Library	
Begins	1953
DECUS
Conf &	Library	
Begins	1962
MIT	Project	
Athena	Begins	
1983
1BSD	Released	
1977
AT&T	Shares	
First	UNIX	 tapes	
early-70s
Free	Software	
Foundation	
Launches	 1985
DoJ vs IBM	begins
“Software	 Bundling	
is	Anti-competitive”
1969
IBM	response	is	to	
unbundle	HW,	SW,	&	
services	 pricing
1st DoJ vs IBM	
Consent	Decree
“Hardware	 Bundling	
is	Anti-competitive”
1956
Open	Source	
Definition	1997
USENIX	 Begins
1975
Linus	Releases	
Linux	1991
Apache	httpd
Released	 1995
Apache	Software	
Foundation	1999
OSDL	Forms
2000
OSDL	Re-forms	as	
Linux	Foundation
2007
U.S.	Congress	
Adds	Computer	
Software	 to	
Copyright	Law
1980
GCC
1987
emacs
1975
We’ve	shared	software	since	we’ve	written	software
1950 1960 1970 200019901980 2010
Code	sharing
At	Princeton	
IAS	in	late	
1940s
IBM	“SHARE”	
Conf &	Library	
Begins	1953
DECUS
Conf &	Library	
Begins	1962
MIT	Project	
Athena	Begins	
1983
1BSD	Released	
1977
AT&T	Shares	
First	UNIX	 tapes	
early-70s
Free	Software	
Foundation	
Launches	 1985
DoJ vs IBM	begins
“Software	 Bundling	
is	Anti-competitive”
1969
IBM	response	is	to	
unbundle	HW,	SW,	&	
services	 pricing
1st DoJ vs IBM	
Consent	Decree
“Hardware	 Bundling	
is	Anti-competitive”
1956
Open	Source	
Definition	1997
USENIX	 Begins
1975
Linus	Releases	
Linux	1991
Apache	httpd
Released	 1995
Apache	Software	
Foundation	1999
OSDL	Forms
2000
OSDL	Re-forms	as	
Linux	Foundation
2007
U.S.	Congress	
Adds	Computer	
Software	 to	
Copyright	Law
1980
GCC
1987
emacs
1975
We’ve	shared	software	since	we’ve	written	software
Writing	good	software	is	hard	work
1950 1960 1970 200019901980 2010
Code	sharing
At	Princeton	
IAS	in	late	
1940s
IBM	“SHARE”	
Conf &	Library	
Begins	1953
DECUS
Conf &	Library	
Begins	1962
MIT	 Project	
Athena	Begins	
1983
1BSD	Released	
1977
AT&T	Shares	
First	UNIX	 tapes	
early-70s
Free	Software	
Foundation	
Launches	 1985
DoJ vs IBM	begins
“Software	 Bundling	
is	Anti-competitive”
1969
IBM	response	is	to	
unbundle	HW,	SW,	&	
services	 pricing
1st DoJ vs IBM	
Consent	Decree
“Hardware	 Bundling	
is	Anti-competitive”
1956
Open	Source	
Definition	1997
USENIX	 Begins
1975
Linus	Releases	
Linux	1991
Apache	httpd
Released	 1995
Apache	Software	
Foundation	1999
OSDL	Forms
2000
OSDL	Re-forms	as	
Linux	Foundation
2007
U.S.	 Congress	
Adds	Computer	
Software	to	
Copyright	Law
1980
GCC
1987
emacs
1975
Companies	shared	software	before	we	had	the	OSD
DEC	Ultrix
1984
SunOS
1983
OSF/1
1992
Red	Hat
1993
1950 1960 1970 200019901980 2010
Code	sharing
At	Princeton	
IAS	in	late	
1940s
IBM	“SHARE”	
Conf &	Library	
Begins	1953
DECUS
Conf &	Library	
Begins	1962
MIT	 Project	
Athena	Begins	
1983
1BSD	Released	
1977
AT&T	Shares	
First	UNIX	 tapes	
early-70s
Free	Software	
Foundation	
Launches	 1985
DoJ vs IBM	begins
“Software	 Bundling	
is	Anti-competitive”
1969
IBM	response	is	to	
unbundle	HW,	SW,	&	
services	 pricing
1st DoJ vs IBM	
Consent	Decree
“Hardware	 Bundling	
is	Anti-competitive”
1956
Open	Source	
Definition	1997
USENIX	 Begins
1975
Linus	Releases	
Linux	1991
Apache	httpd
Released	 1995
Apache	Software	
Foundation	1999
OSDL	Forms
2000
OSDL	Re-forms	as	
Linux	Foundation
2007
U.S.	 Congress	
Adds	Computer	
Software	to	
Copyright	Law
1980
GCC
1987
emacs
1975
Companies	shared	software	before	we	had	the	OSD
(Writing	good	software	is	hard	work)
DEC	Ultrix
1984
SunOS
1983
OSF/1
1992
Red	Hat
1993
A Story
Engineering	Economics	of	F/OSS	(Benefits)
• In	1995,	Interix	was	the	kernel-integrated	“UNIX”	face	of	Windows	NT
• ~300	packages	covered	by	~25	licenses	+	Microsoft	POSIX	subsystem	
derivative	+	Softway developed	software	
• gcc provided	critical	support	for	Interix	Toolchain	&	SDK	(~750K	LoC*)
• Ported/Integrated/Tested	to	Interix	in	~6-8	months	by	a	senior	
compiler	engineer	instead	of	~US$10M-20M*	cost-to-develop
• But	now	we’re	living	on	a	fork	…
*	Estimates	from	Black	Duck	Open	Hub
Forks
The	Two	Ronnies,	“Four	Candles”,	https://www.youtube.com/watch?v=sO6EE1xTXmw
Engineering	Economics	of	F/OSS	(Costs)
• Cost	of	Interix	gcc fork	is	~6	months	of	a	senior	engineer’s	time	(~US$50K+)
• If	Interix	changes	are	upstream,	we	estimate	2-4	weeks	of	
integration/testing	on	new	gcc releases	(~US$7-10K)
• But	there	are	really	five gcc projects	to	negotiate	…
• Cygnus	Solutions	are	core	committers	on	gcc:	quoted	~US$120K	and	they	
could	start	in	14	months
• Ada	Core	Technology	ALSO	had	core	committers:	US$40K	&	immediate	
start
You	Always	Get	More	Than	You	Give
2	Stories
Orders
of
magnitude
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	…
Committer(s)
+
Code
Developers
Committers
+
Code
Developers
Committers
+
Code
Developers
Users
Committers
+
Code
Developers
Users
Committers
+
Code
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)
How	do	you	increase	your	user	base?
(How	do	you	make	it	easy	to	install/configure/use	the	software?)
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
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
How	do	you	encourage	developers?
(How	do	you	make	it	easy	to	build/test/experiment?)
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
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
Community	Development	Activities	
Code	of	
Conduct
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
How	do	you	make	it	easy	to	contribute?
(What	do	you	communicate	to	your	community)
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
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	
Contributoion
Guidelines
Committers
Contributors
Community
EcosystemProject
Products
Services
Books
Training
The	Evolution	of	an	Open	Source	Project
Committers
Contributors
Community
EcosystemProject
Products
Services
Books
Training
Corporate
Contributors
The	Evolution	of	an	Open	Source	Project
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
Foundations
• Henrik	Ingo’s	numbers
• Foundations	CAN	provide	neutral	ownership	and	a	level	playing	field
• Bright	lines	for	projects	versus	products
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
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/
Manage	Corp	
Contributions
Developers
Users
Committers
+
Code
Developers
Users
Committers
+
Code
Orders
Of
Magnitude
Freeloaders
Are
Essential
Developers
Users
Committers
+
Code
Books
Contractors
Products
Distributions
Consulting
Training
Support
Building	the	Ecosystem
Committers
Contributors
Community
EcosystemProject
Products
Services
Books
Training
Corporate
Contributors
Customers
The	Evolution	of	an	Open	Source	Project
Committers
Contributors
Community
EcosystemProject
Products
Services
Books
Training
Corporate
Contributors
Customers
Engineering/
Partner?/
Customer?/
Committers
Engineering/
Partner?/
Customer?/
Contributors
Community
EcosystemProject
Products
Services
Books
Training
Partner/Customer
Contributors
The	Evolution	of	a	Corporate	Open	Source	Project
Setting	Customer	and	Partner	Expectations	in	Community	is	Critical
Don’t	Confuse	Projects	with	Products
Customer	Pipeline
R&D
Product
Marketing
Messages
$$$
Code,
etc.
The	community	is	NOT	a	part	of	the	pipeline!
Don’t	Confuse	Communities	with	Customers
Customer	Pipeline
R&D
Product
Marketing
Messages
$$$
Code,
etc.
The	community	is	NOT	a	part	of	the	pipeline!
Don’t	Confuse	Communities	with	Customers
WRONG
Don’t	Confuse	Communities	with	Customers
R&D
Product
Marketing
Messages
$$$
Code,
etc.
Conversations
Identify
Customer
Awareness Download
&	Try
Deploy?
Train?
???
Buy
Identify
community
What	
Mission?
Platform	 &
Tools
Arch.	of	
Participation
Code	of	
Conduct
IP
Machine
Governance
Structure
…	with	different	tools,	
programs	and	metrics.
Community	members	build	awareness	and	evangelize,	
provide	expertise	and	trial	support,	are	a	demonstration	of	
solution	viability,	 and	provide	great	inertia	around	your	
solution – Contributors	provide	innovation
A	Last	Story
A	Story	of	Red	Hat	in	Three	CEOs
1994 1999 2008
A	Story	of	Red	Hat	in	Three	CEOs
1994 1999 2008
A	Story	of	Red	Hat	in	Three	CEOs
1994 1999 2008
A	Story	of	Red	Hat	in	Three	CEOs
Questions	&	Comments
stephen r walli
stephen.walli@gmail.com
@stephenrwalli
http://stephesblog.blogs.com
http://opensource.com
Creative	Commons	Photo	Credits
• Stephen	R.	Walli	(https://www.flickr.com/photos/stephenrwalli/)(campfire,	car)
• Mitch	Barrie	(https://www.flickr.com/photos/simonov/)(engine)
• Stuart	Rankin	(https://www.flickr.com/photos/24354425@N03/)(steel)
• Selby	Lynn	(https://www.flickr.com/photos/stacylynn/)(house)
• Emilian	Robert	Vicol (https://www.flickr.com/photos/free-stock/)(lumber)
• Olga	Caprotti (https://www.flickr.com/photos/__olga__/)(trees)
• James	Willamor (https://www.flickr.com/photos/bz3rk/)(football	field)

Freeloaders are Essential and Other Open Source Product Truths