scale14x patterns and practices for open source project success
Post on 20-Mar-2017
1.351 Views
Preview:
TRANSCRIPT
Patterns and Practices for Open Source Project Success
stephen r. walli@stephenrwalli
stephen.walli@gmail.com
We’ve shared software since we’ve written softwareWriting good software is hard work
Princeton
USENIX
SHARE
DECUS
MIT Athena
Free Software FountationBerkeley CSRG
Apache
Linux
EclipseFountation
ASF
ROTOR500K LoC500K Lines-‐of-‐Test HarnessRan on Windows, Mac OS X, FreeBSDOne script to set environmentOne command to build everythingOne command to test it allMinimal documentation
24 hours later …24 hours later again …
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?)
Project E
xes
publish
ed
Project Install
Automated
Software Construction ActivitiesProject
BugTracking
How do you increase your user base?(How do you make it easy to install/configure/use the software?)
Project E
xes
publish
ed
Project Install
AutomatedSoftware Construction Activities
Project
License
FAQs, Ho
wto
Community Development Activities
Project
BugTracking
Forums, Em
ail
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
How do you encourage developers?(How do you make it easy to build/test/experiment?)
Project B
uild
Automated I
Complete Src
publish
ed
Project Test
Automated I
Software Construction Activities
How do you encourage developers?(How do you make it easy to build/test/experiment?)
Project B
uild
Automated I
Complete Src
publish
ed
Project Test
Automated I
Software Construction Activities
Mission
Statem
ent
Comms
Platform
Contrib
utoion
Guidelines
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)
Project B
uild
Automated II
Project Test
Automated II
Basic
Arch
Descrip
tion
Software Construction Activities
How do you make it easy to contribute?(What do you communicate to your community)
Project B
uild
Automated II
Project Test
Automated II
Basic
Arch
Descrip
tion
Software Construction Activities
Governance
Events
Community Development Activities
Committers ContributorsCommunity
EcosystemProject
ProductsServices
Books
Training
CorporateContributors
How do you make it easy to contribute?(What do you communicate to your COMMERCIAL community)
Project
License
Provenance
Tracking
Repositories
Protected
Dependencies
Documented
Contrib
utions
Auditted
Provenance
Managem
ent
Committers
Indemnified
Committer
Governance
Tradem
ark
Managem
ent
IP Management Activities
Foundations
• Henrik Ingo’s numbers• Foundations provide neutral ownership and a level playing field• Bright lines for projects versus products
Ope
n Source Com
mun
ity Practices
Project E
xes
publish
ed
Project B
uild
Automated I
Project Install
Automated
Complete Src
publish
ed
Project
BugTracking
Project B
uild
Automated II
Project Test
Automated I
Project Test
Automated II
Basic
Arch
Descrip
tion
Project
License
Project
License
Mission
Statem
ent
Code of
Conduct
Forums, Em
ail
Comms
Platform
FAQs, Ho
wto
Governance
Contrib
utoion
Guidelines
Events
Provenance
Tracking
Repositories
Protected
Dependencies
Documented
Contrib
utions
Auditted
Provenance
Managem
ent
Committers
Indemnified
Committer
Governance
Tradem
ark
Managem
ent
IP Management Activities
Community Development
Software Construction Maturity
Ope
n Source Com
mun
ity Patterns
Project E
xes
publish
ed
Project B
uild
Automated I
Project Install
Automated
Complete Src
publish
ed
Project
BugTracking
Project B
uild
Automated II
Project Test
Automated I
Project Test
Automated II
Basic
Arch
Descrip
tion
Project
License
Project
License
Mission
Statem
ent
Code of
Conduct
Forums, Em
ail
Comms
Platform
FAQs, Ho
wto
Governance
Contrib
utoion
Guidelines
Events
Provenance
Tracking
Repositories
Protected
Dependencies
Documented
Contrib
utions
Auditted
Provenance
Managem
ent
Committers
Indemnified
Committer
Governance
Tradem
ark
Managem
ent
IP Management Activities
Community Development
Software Construction Maturity
EncourageUsers
EncourageContributorsEncourage Developers
Encourage Corp Contributions
Developers
Users
Committers+
Code
Books
Contractors
Products
Distributions
Consulting
Training
Support
Building the Ecosystem
Committers ContributorsCommunity
EcosystemProject
ProductsServices
Books
Training
CorporateContributors
Customers
Committers ContributorsCommunity
EcosystemProject
ProductsServices
Books
Training
CorporateContributors
Customers
top related