lcna14: how to run a collaborative project

62
How to run a Collaborative Project Lars Kurth Community Manger, Xen Project Chairman, Xen Project Advisory Board Director, Open Source Business Office, Citrix lars_kurth

Upload: the-linux-foundation

Post on 19-May-2015

358 views

Category:

Technology


1 download

DESCRIPTION

Collaborative development is at the core of successful open source projects. Yet to be successful in today's competitive open source world, it is increasingly important to master many different disciplines and to develop an edge. In this talk we will cover a wide range of topics relevant to developers and members of open source communities who want to increase participation in their projects. Topics range from growing your developer base (e.g. by participation in GSoC, OPW and similar programs), rewarding participation, projecting momentum in the media and press, coercing large companies into contributing more and in different ways to your project, running community initiatives successfully and measuring success. We will use real-life examples and where appropriate share tools and mental models that help you make the right decisions for your project.

TRANSCRIPT

Page 1: LCNA14: How to run a Collaborative Project

How to run a Collaborative Project

Lars KurthCommunity Manger, Xen ProjectChairman, Xen Project Advisory BoardDirector, Open Source Business Office, Citrix lars_kurth

Page 2: LCNA14: How to run a Collaborative Project

About Me

Was a contributor to various projects

Worked in parallel computing, tools, mobile and now virtualization

Community guy at Symbian FoundationLearned how NOT to do stuff

Community guy for the Xen ProjectWorking for CitrixMember of OSS Business OfficeAccountable to Xen Project Advisory BoardChairman of Xen Project Advisory Board

Page 3: LCNA14: How to run a Collaborative Project

A few Quite Interesting facts ……about Open Source

Source: The 2014 Future of Open Source Survey Result

Page 4: LCNA14: How to run a Collaborative Project

A few Quite Interesting facts …

The # of Projects is growing rapidly

2007: 0.2M projects

Today: 1.0M projects, 100Billion LOC, 10M contributors

2015: 1.8M projects

John Morgan @ Flickr Simon & His Camera @ Flickr

Kumar Appaiah @ Flickr

Page 5: LCNA14: How to run a Collaborative Project

A few Quite Interesting facts …

50% of all enterprises adopt OSS software

Julian Manson @ Flickr

Page 6: LCNA14: How to run a Collaborative Project

A few Quite Interesting facts …

30% of companies make it easy for employees to contribute to projects

Influencing a project’s direction is one of the main reason for contributing

Nick @ Flickrtoffehoff @ Flickr

Page 7: LCNA14: How to run a Collaborative Project

Theory:Open Source Flywheel

Page 8: LCNA14: How to run a Collaborative Project
Page 9: LCNA14: How to run a Collaborative Project

Development ActivityProduct andExperience

Users

Tools, Process, CultureOption Value[1], Modularity

Contributions, Reviews,Problem Solving, Leadership

Features, Quality3rd Party Integrations

Feedback, Engagement Trust, Passion

[1] bit.do/optionvalue

Open Source Development Model

Page 10: LCNA14: How to run a Collaborative Project

Development ActivityProduct andExperience

Users Open Source Development Model

Page 11: LCNA14: How to run a Collaborative Project

Development ActivityProduct andExperience

Users

Lower development costLower deployment cost and risk

More

BetterMore

CommunityGrowth

Open Source Development ModelMore business opportunities

and momentum

Page 12: LCNA14: How to run a Collaborative Project

Open Source Development Model

Development ActivityProduct andExperience

Users

Lower development costLower deployment cost and risk

More

BetterMore

CommunityGrowth

More business opportunities and momentum

Page 13: LCNA14: How to run a Collaborative Project

Open Source Development Model

Development ActivityProduct andExperience

Users

More efficiency andinnovation

Lower development costLower deployment cost and risk

More

Better

Better

More

CommunityGrowth

More business opportunities and momentum

Page 14: LCNA14: How to run a Collaborative Project

Flywheel Example: Eclipse

2001: Open Sourced by IBM2001 – 2003: Growth from 8 to 80 consortia members

2006: Callisto10 projects, 260 committers

2004: Eclipse Foundation

2011: 10th Birthday273 projects, 1057 committers,50+ MLOC, 174 members(see bit.do/Eclipse-10)

More projects/products/users, improved process, improved option value/modularity, …

Page 15: LCNA14: How to run a Collaborative Project

War Stories:Tragedy of the Commons(sort of)

Moyan Brenn @ Flickr

Page 16: LCNA14: How to run a Collaborative Project

snoopsmouse @ Flickr

Page 17: LCNA14: How to run a Collaborative Project

Bruce SchneierInternationally renowned security Technologist

@Bruce_Schneier

Catastrophic is the right word [for Heartbleed]. On the scale of 1 to 10, this is an 11.

Page 18: LCNA14: How to run a Collaborative Project

So what happened and why?

Page 19: LCNA14: How to run a Collaborative Project

OpenSSL Stats

Source: Ohloh.net

Growing Codebase

Static and small contributor base1 person maintaining 100 KLoC = Underinvestment

Extremely large user baseCritical infrastructure componentThus impact of Heartbleed is huge

Large user base did not translate into developer community growth

Page 20: LCNA14: How to run a Collaborative Project

Open Source Development Model

Development Activity

Product andExperience

Users

Imbalanced Cycle

Page 21: LCNA14: How to run a Collaborative Project

And the root cause?

Page 22: LCNA14: How to run a Collaborative Project

More Competition amongst projects for finite

resources and attention

snoopsmouse @ Flickr

Page 23: LCNA14: How to run a Collaborative Project

Massively multi-player beauty Contest

Features

How many users you have

How many vendors back you

How you are seen in the press

Communities must excel in

many disciplines

Page 24: LCNA14: How to run a Collaborative Project

Open Source Foundationscan help you succeed

Page 25: LCNA14: How to run a Collaborative Project

OSS Foundation = Magnify Impact

Neutrality / Perception

Support Infrastructure

Expertise / Mentoring

Vendor Network

BUT: You still need to do all the right things

Page 26: LCNA14: How to run a Collaborative Project

Different OSS Foundations

Different strengths

Page 27: LCNA14: How to run a Collaborative Project

Lesson for Community LeadersCreate a balanced FlywheelOSS Foundations can helpMaster different skills

Vinovyn @ Flickr

Page 28: LCNA14: How to run a Collaborative Project

Follow Industry News

Follow Project News

Adopt Software

Engage with Users

Trial Software

Engage with Industry

Evangelize

Contribute

Customize

Lead

Community FunnelSee bit.do/Community-FunnelSee bit.do/LinuxConEU13

Activities

Metrics

Problem

Page 29: LCNA14: How to run a Collaborative Project

Community is expanding fast

Companies can’t find staff

Potential of slowing growthPotential of loosing new vendorsPoachingFriction

Problem

Tim J Keegan @ Flickr

Page 30: LCNA14: How to run a Collaborative Project

Solution: “Grow” DevelopersTraining:

Expensive to create

Does not normally scale

bit.do/grow-devs

You don’t need training…

Good and active dev wikiIn code API docsRecorded developer talks

Extensive commit messagesDesign discussions on the list(linked to in commit message)

Willingness to help newcomers(mentors)...

Page 31: LCNA14: How to run a Collaborative Project

GSoCOrgs need to apply(we did not always get in)

Students only, summer only

OPWOrgs and companies can sponsor slots

Interns, summer and winter

Good mentors = word of mouth

Committed mentors (who can spend a few hours a week) Suitable projectsNot so much about the code = it’s an investment in people

MetricsApprox. 40% still engaged after 3 yearsRepeat mentors, more people willing to mentor

Page 32: LCNA14: How to run a Collaborative Project

30% Community Growth p.a.

Contributors competing for review time from stretched maintainer / reviewer base

Average review time up from 28 to 32 days in 6 months

Problem

Page 33: LCNA14: How to run a Collaborative Project

Short term fixes(documentation/guidance : set expectations)(better co-ordination for amongst reviewers)

Grow reviewer base by identifying capable candidates in the community(support + encourage + reward : bit.do/let-them-be-your-heroes)

Get backing from vendors to ensure candidates stay engaged in community(if vendor employee)

Mentor candidates to get them effective more quickly than normal(copy the GSoC / OPW pattern)

Still discussing how to do this (at a BoF yesterday and the dev meeting today)No guarantee this works!!!

Page 34: LCNA14: How to run a Collaborative Project

Activities

Problem

Metrics

Page 35: LCNA14: How to run a Collaborative Project

Projecting Momentum is Key

ActivitiesMetrics

Problem

Page 36: LCNA14: How to run a Collaborative Project

Projecting Momentum is Key

Media

IndustryMedia Coverage

Social Media Impact

Page 37: LCNA14: How to run a Collaborative Project

Projecting Momentum is Key

Media

Industry

Users

User & Web Metrics

Features / Releases

Page 38: LCNA14: How to run a Collaborative Project

Projecting Momentum is Key

Community Metricsbit.do/oss-metrics

bit.do/oss-commercial-dashboards

Contributors

Media

Industry

Users

Page 39: LCNA14: How to run a Collaborative Project

Projecting Momentum is Key

Are you helpingyour employer

by contributing tothe project?

Employer

Contributors

Media

Industry

Users

Page 40: LCNA14: How to run a Collaborative Project

Projecting Momentum is Key

Are you spendingyour funds wisely?

bit.do/community-plan

Employer

Board

Contributors

Media

Industry

Users

Page 41: LCNA14: How to run a Collaborative Project

Some Examples from my work:

bit.do/xenproject-sample-report-1bit.do/xenproject-sample-report-2

There is no single solution thatautomatically gets you all your data

RE-USE Data fordifferent stake-holders!!!

Page 42: LCNA14: How to run a Collaborative Project

Theory:Open Source Flywheelrevisited

The boundary between Business and Communities

Page 43: LCNA14: How to run a Collaborative Project

Open Source Development Model

Development Activity

Product andExperience

Users

Developerled

Marketing and PR led

Page 44: LCNA14: How to run a Collaborative Project

Open Source Development Model

Development Activity

Product andExperience

Users

Companystrengths

Communitystrengths

Page 45: LCNA14: How to run a Collaborative Project

Create a balanced FlywheelOSS Foundations can helpMaster many different skills

Vinovyn @ Flickr

Get Companies to help you

Page 46: LCNA14: How to run a Collaborative Project

Community

CompaniesPeople

Value

Page 47: LCNA14: How to run a Collaborative Project

War Stories:Undefined Responsibilitiescause problems

Moyan Brenn @ Flickr

Page 48: LCNA14: How to run a Collaborative Project

Example 1: Meddling

Xen Project Advisory Board trying to push a preferred test harnessover community solution

Paralysis: no new test codewritten

Delay of roll-out of independently hosted Test Farm

Risk of Test Farm not beingadopted

Solution:

• Working group jointly led by community and Advisory Board• Group resolved the issue

Page 49: LCNA14: How to run a Collaborative Project

Example 2: Pushing Boundaries

Vendor trying to use private channels to Citrix Xen Project maintainers to get an edge

Committers needed the vendorhelp to progress their goals

Vendor trying to get more and more

Potential of lack of trust in ourXen Project maintainers

Solution:

• A rather difficult conversation• Vendor starting to follow community practices and additionally donating

(non-developer) resources to the project

Page 50: LCNA14: How to run a Collaborative Project

Undefined / Unclear / Misunderstood / Unenforced

Rules & Responsibilities

Create Pain & Erode Trust

Page 51: LCNA14: How to run a Collaborative Project

War Stories:Tedious and Business Unfriendly Rules

Moyan Brenn @ Flickr

Page 52: LCNA14: How to run a Collaborative Project

ASF Trademark Management

Vendors wants to promoteproject at events (swag, booth,collateral, …)

Tedious approval process for every single instance• PMC approval• VP of Trademark approval

(bottleneck)

Frustrated vendorsFrustrated community

Solution:

• Simplify process for common situations• Proposal at bit.do/PMC-TM-management 

Page 53: LCNA14: How to run a Collaborative Project

Tedious and arduousprocesses

Makes it hard forcompanies to help out

Frustration & Tension

Page 54: LCNA14: How to run a Collaborative Project

CommunityCompanies

Governance: Xen Project

•PR / AR / Marketing / Messaging

•Membership Rules / Trademarks / Legal

•Provide funds to solve “Common Good” problems

•Referee of last resort

•Principles (aka Values)

•Roles

•Decision Making

•Project Lifecycle

•Community Initiatives, Best Practices, …

Advisory Board WGs Project Governance

Test WG

PR WG

TCT

Page 55: LCNA14: How to run a Collaborative Project

Community

CompaniesAdvisory Board WGs Project Governance

Development and code

Marketing and PR

Page 56: LCNA14: How to run a Collaborative Project

Lessons:Clear Rules and ResponsibilitiesRemove tensionCreate trustWorks best when aligned with Flywheel

Business friendly RulesSimple and EasyEnables businesses to help the community

Effect: Community sees value in company participation

Vinovyn @ Flickr

Page 57: LCNA14: How to run a Collaborative Project

Final Thoughts

Vinovyn @ Flickr

Page 58: LCNA14: How to run a Collaborative Project

Running OSS projects well is getting increasinglyDifficult

Maria Ly @ Flickr

Page 59: LCNA14: How to run a Collaborative Project

Successful projects perform some functions

similar to

successful companies

Page 60: LCNA14: How to run a Collaborative Project

With the right Rules there is potential for Symbiosis

Tchami @ Flickr

Page 61: LCNA14: How to run a Collaborative Project

Tensions between Companiesand Community can leadto Innovation

Page 62: LCNA14: How to run a Collaborative Project

Thank You!Please rate the talk

www.slideshare.net/xen_com_mgr/