anatomy of an open source project: key factors to success
TRANSCRIPT
1Samsung Open Source Group
Anatomy of an Open Source ProjectKey Factors to Success
Guy MartinSenior Strategist
Samsung Open Source [email protected]@guyma, @SamsungOSG
2Samsung Open Source Group
What is Anatomy?
Wikipedia says…
“Anatomy is the biological science concerned with the
structure of living things.”
But I say…
Projects are made up of living beings, and it can be useful
to model their parts using human anatomy as an analogy.
3Samsung Open Source Group
Abnormal Project Anatomy
4Samsung Open Source Group
The Brain Governance
5Samsung Open Source Group
Open Source Governance
• Licensing
• Choosing an appropriate license
• Contributor Agreements?
• Operations
• Management & community structure
• Maintenance & contribution policies
• Development methodologies
• Guidelines
• Code of Conduct
• Handling Grievance/Disputes
6Samsung Open Source Group
Community Organization
• Tight vertical hierarchy
• Loose horizontal structure
• Small incremental changes flow upward
Maintainer
Subsystem maintainer
Subsystem maintainer
Subsystem maintainer
Sub-subsystem mainta
iner
Sub-subsystem mainta
iner
Sub-subsystem mainta
iner
Sub-subsystem mainta
iner
Sub-subsystem mainta
iner
Develo
per
Develo
per
Develo
per
Develo
per
Develo
per
Develo
per
Develo
per
Develo
per
Develo
per
Develo
per
Develo
per
Develo
per
Develo
per
Develo
per
Meritocracy drives advancement and acceptance
Not influenced by marketing
7Samsung Open Source Group
Open Source Development
ModelUser
Community
Developer
Community
Project or Feature Ideas
Architecture and
Design Discussion
Implementation(coding)
Continuous Testing
and IntegrationDeployment
(release)
Maintenance
Patches(submitted by developers
and users)
Feature Requests(submitted by developers
and users)
Test Projects to Automate
Testing and Validation
8Samsung Open Source Group
Feedback
Loop
Setup
machine
Check out
code
Write code
Debug
Build
Validate
Generate
patch
Submit Validate
Integrate with
-dev
Build
QA
validation
Release
validation
Publish as
-stable
Driven by participating developers Driven by maintainers
Open Source Release Cycle
9Samsung Open Source Group
The HeartCulture, Transparency, Openness
10Samsung Open Source Group
Project Culture
Accidental or Intentional?
• Usually better to be intentional, not let it just ‘happen’?
Welcoming or Challenging?
• Welcoming brings in diverse ideas – challenging sets bar to entry higher
Encouraging or Demanding?
• Encouraging builds sustainability – demanding gets the job done
“Defining a culture doesn’t mean being everything to
everyone…it means choosing the environment which
you want to participate in… which will breed more of
the same type of creativity you want in the project.”John O’Nolan – Ghost.org Founder
11Samsung Open Source Group
Project Transparency
Design, Discuss, Code in Public
• This can be messy, but messy is good
• Allows for multiple voices and opinions to be heard
• Process/person for resolving disputes decided ahead of time
Special Note for Companies
• Transparency != Loss of Control
The same point is clear in software as in business and in politics –
transparency wins.
Dana Blankenhorn – Business/Technology Journalist
12Samsung Open Source Group
Project Openness
Access
• Code available equally to everyone
• Support resources/infrastructure equally available to everyone
Collaboration
• Shared responsibility and accountability
• Ability to influence project through sustained contributions
Corporate Influences
• Leadership != Control
• Decisions made that balance community/corporate needs
• The ‘Android Paradox’ – varying levels of ‘openness’
13Samsung Open Source Group
The Blood Contributions
14Samsung Open Source Group
Technical Contributions
• Standardized & consistent code architecture
• Modular and flexible code designed for acceptance
• Easily understandable code (with useful comments)
• Code contributed in manageable chunks (no code dumps)
• Smoke and sanity/unit-tested code
15Samsung Open Source Group
Supporting Contributions
• Accurately described/filed bugs
• Requests for new features
• Strong and consistent documentation
• Strong Quality Assurance/Testing
• External evangelism/community management
16Samsung Open Source Group
The SkeletonInfrastructure
17Samsung Open Source Group
Project Infrastructure
18Samsung Open Source Group
Project Infrastructure Examples: Front Page
What the project does
Where tofind the code
Who issponsoring
19Samsung Open Source Group
Project Infrastructure Examples: For Developers
20Samsung Open Source Group
Project Infrastructure Examples: Get Involved
21Samsung Open Source Group
The Checkup Project Review
22Samsung Open Source Group
Project Checkup
• Are your project elements balanced?
• Is each element functioning optimally?
• Brain – Governance and processes that guide development
• Heart – Strong community, honest and transparent communication
• Blood – Strong consistent contributions (not just code)
• Skeleton – Infrastructure that meets project needs
• Frequent checkups (at least 1/year, more if necessary)