anatomy of an open source project: key factors to success

Post on 16-Jul-2015

254 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1Samsung Open Source Group

Anatomy of an Open Source ProjectKey Factors to Success

Guy MartinSenior Strategist

Samsung Open Source Groupguym@osg.samsung.com@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)

23Samsung Open Source Group

Questions and Discussion

Guy Martin

guym@osg.samsung.com

top related