Guy Martin, Senior Strategist with the Samsung Open Source Group, discusses how successful Open Source Projects need balance between their different areas of 'anatomy'.
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Anatomy of An Open Source Project: Key Factors to Success
1. 1Samsung Open Source Group
Anatomy of an Open Source Project
Key Factors to Success
Guy Martin
Senior Strategist
Samsung Open Source Group
guym@osg.samsung.com
@guyma, @SamsungOSG
2. 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.
5. 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
6. 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-subsys
tem mainta
iner
Sub-subsys
tem mainta
iner
Sub-subsys
tem mainta
iner
Sub-subsys
tem mainta
iner
Sub-subsys
tem mainta
iner
Developer
Developer
Developer
Developer
Developer
Developer
Developer
Developer
Developer
Developer
Developer
Developer
Developer
Developer
Meritocracy drives advancement
and acceptance
Not influenced by marketing
7. 7Samsung Open Source Group
Open Source Development
Model
User
Community
Developer
Community
Project or Feature Ideas
Architecture and
Design Discussion
Implementation
(coding)
Continuous Testing
and Integration
Deployment
(release)
Maintenance
Patches
(submitted by developers
and users)
Feature Requests
(submitted by developers
and users)
Test Projects to Automate
Testing and Validation
8. 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
10. 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
11. 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
12. 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’
14. 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
15. 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
22. 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)
23. 23Samsung Open Source Group
Questions and
Discussion
Guy Martin
guym@osg.samsung.com