lceu14: how to run a collaborative project - lars kurth

64
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: xen-project

Post on 27-Nov-2014

280 views

Category:

Technology


2 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 share tools and mental models (e.g. open source flywheel and funnels) that help you make the right decisions for your project.

TRANSCRIPT

Page 1: LCEU14: How to run a Collaborative Project - Lars Kurth

How to run a Collaborative Project

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

Page 2: LCEU14: How to run a Collaborative Project - Lars Kurth

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: LCEU14: How to run a Collaborative Project - Lars Kurth

A few Quite Interesting facts ……about Open Source

Source: The 2014 Future of Open Source Survey Result

Page 4: LCEU14: How to run a Collaborative Project - Lars Kurth

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: LCEU14: How to run a Collaborative Project - Lars Kurth

A few Quite Interesting facts …

50% of all enterprises adopt OSS software

Julian Manson @ Flickr

Page 6: LCEU14: How to run a Collaborative Project - Lars Kurth

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: LCEU14: How to run a Collaborative Project - Lars Kurth

Theory:Open Source Flywheel

Page 8: LCEU14: How to run a Collaborative Project - Lars Kurth
Page 9: LCEU14: How to run a Collaborative Project - Lars Kurth

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: LCEU14: How to run a Collaborative Project - Lars Kurth

Development ActivityProduct andExperience

Users Open Source Development Model

Page 11: LCEU14: How to run a Collaborative Project - Lars Kurth

Development ActivityProduct andExperience

Users

Lower development costLower deployment cost and risk

More

BetterMore

CommunityGrowth

Open Source Development ModelMore business opportunities

and momentum

Page 12: LCEU14: How to run a Collaborative Project - Lars Kurth

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: LCEU14: How to run a Collaborative Project - Lars Kurth

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: LCEU14: How to run a Collaborative Project - Lars Kurth

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: LCEU14: How to run a Collaborative Project - Lars Kurth

War Stories:Tragedy of the Commons(sort of)

Moyan Brenn @ Flickr

Page 16: LCEU14: How to run a Collaborative Project - Lars Kurth

snoopsmouse @ Flickr

Page 17: LCEU14: How to run a Collaborative Project - Lars Kurth

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: LCEU14: How to run a Collaborative Project - Lars Kurth

So what happened and why?

Page 19: LCEU14: How to run a Collaborative Project - Lars Kurth

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: LCEU14: How to run a Collaborative Project - Lars Kurth

Open Source Development Model

Development Activity

Product andExperience

Users

Imbalanced Cycle

Page 21: LCEU14: How to run a Collaborative Project - Lars Kurth

And the root cause?

Page 22: LCEU14: How to run a Collaborative Project - Lars Kurth

More Competition amongst projects for finite

resources and attention

snoopsmouse @ Flickr

Page 23: LCEU14: How to run a Collaborative Project - Lars Kurth

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: LCEU14: How to run a Collaborative Project - Lars Kurth

Open Source Foundationscan help you succeed

Page 25: LCEU14: How to run a Collaborative Project - Lars Kurth

OSS Foundation = Magnify Impact

Neutrality / Perception

Support Infrastructure

Expertise / Mentoring

Vendor Network

BUT: You still need to do all the right things

Page 26: LCEU14: How to run a Collaborative Project - Lars Kurth

Different OSS Foundations

Different strengths

Page 27: LCEU14: How to run a Collaborative Project - Lars Kurth

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

Vinovyn @ Flickr

Page 28: LCEU14: How to run a Collaborative Project - Lars Kurth

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: LCEU14: How to run a Collaborative Project - Lars Kurth

Community is expanding fast

Companies can’t find staff

Potential of slowing growthPotential of loosing new vendorsPoachingFriction

Problem

Tim J Keegan @ Flickr

Page 30: LCEU14: How to run a Collaborative Project - Lars Kurth

Solution: “Grow” DevelopersTraining:

Expensive to create

Does not normally scale(unless your project is huge)

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: LCEU14: How to run a Collaborative Project - Lars Kurth

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: LCEU14: How to run a Collaborative Project - Lars Kurth

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: LCEU14: How to run a Collaborative Project - Lars Kurth

Short term fixes(documentation/guidance : set expectations)(better co-ordination for amongst reviewers)(focus more on designs to save time)

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

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

Get backing from vendors to ensure candidates stay engaged in community(if vendor employee)(existing community members don’t want to waste their time on someone who will dissappear)

Page 34: LCEU14: How to run a Collaborative Project - Lars Kurth

Activities

Problem

Metrics

Page 35: LCEU14: How to run a Collaborative Project - Lars Kurth

Projecting Momentum is Key

ActivitiesMetrics

Problem

Page 36: LCEU14: How to run a Collaborative Project - Lars Kurth

Projecting Momentum is Key

Media

IndustryMedia Coverage

Social Media Impact

Page 37: LCEU14: How to run a Collaborative Project - Lars Kurth

Projecting Momentum is Key

Media

Industry

Users

User & Web Metrics

Features / Releases

Page 38: LCEU14: How to run a Collaborative Project - Lars Kurth

Projecting Momentum is Key

Community Metricsbit.do/oss-metrics

bit.do/oss-commercial-dashboards

Contributors

Media

Industry

Users

Page 39: LCEU14: How to run a Collaborative Project - Lars Kurth

Projecting Momentum is Key

Are you helpingyour employer

by contributing tothe project?

Employer

Contributors

Media

Industry

Users

Page 40: LCEU14: How to run a Collaborative Project - Lars Kurth

Projecting Momentum is Key

Are you spendingyour funds wisely?

bit.do/community-plan

Employer

Board

Contributors

Media

Industry

Users

Page 41: LCEU14: How to run a Collaborative Project - Lars Kurth

Funnel + Flywheel

Open Source Strategy /Community Plan

bit.do/sample_community_plan

Page 42: LCEU14: How to run a Collaborative Project - Lars Kurth

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 43: LCEU14: How to run a Collaborative Project - Lars Kurth

Theory:Open Source Flywheelrevisited

The boundary between Business and Communities

Page 44: LCEU14: How to run a Collaborative Project - Lars Kurth

Open Source Development Model

Development Activity

Product andExperience

Users

Developerled

Marketing and PR led

Page 45: LCEU14: How to run a Collaborative Project - Lars Kurth

Open Source Development Model

Development Activity

Product andExperience

Users

Companystrengths

Communitystrengths

Page 46: LCEU14: How to run a Collaborative Project - Lars Kurth

Create a balanced FlywheelOSS Foundations can helpMaster many different skills

Vinovyn @ Flickr

Get Companies to help you

Page 47: LCEU14: How to run a Collaborative Project - Lars Kurth

Community

CompaniesPeople

Value

Page 48: LCEU14: How to run a Collaborative Project - Lars Kurth

War Stories:Undefined Responsibilitiescause problems

Moyan Brenn @ Flickr

Page 49: LCEU14: How to run a Collaborative Project - Lars Kurth

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 50: LCEU14: How to run a Collaborative Project - Lars Kurth

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 51: LCEU14: How to run a Collaborative Project - Lars Kurth

Undefined / Unclear / Misunderstood / Unenforced

Rules & Responsibilities

Create Pain & Erode Trust

Page 52: LCEU14: How to run a Collaborative Project - Lars Kurth

War Stories:Tedious and Business Unfriendly Rules

Moyan Brenn @ Flickr

Page 53: LCEU14: How to run a Collaborative Project - Lars Kurth

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 54: LCEU14: How to run a Collaborative Project - Lars Kurth

Tedious and arduousprocesses

Makes it hard forcompanies to help out

Frustration & Tension

Page 55: LCEU14: How to run a Collaborative Project - Lars Kurth

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 56: LCEU14: How to run a Collaborative Project - Lars Kurth

Community

CompaniesAdvisory Board WGs Project Governance

Development and code

Marketing and PR

Page 57: LCEU14: How to run a Collaborative Project - Lars Kurth

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 58: LCEU14: How to run a Collaborative Project - Lars Kurth

Final Thoughts

Vinovyn @ Flickr

Page 59: LCEU14: How to run a Collaborative Project - Lars Kurth

Running OSS projects well is getting increasinglyDifficult

Maria Ly @ Flickr

Page 60: LCEU14: How to run a Collaborative Project - Lars Kurth

Successful projects perform some functions

similar to

successful companies

Page 61: LCEU14: How to run a Collaborative Project - Lars Kurth

With the right Rules there is potential for Symbiosis

Tchami @ Flickr

Page 62: LCEU14: How to run a Collaborative Project - Lars Kurth

Tensions between Companiesand Community can leadto Innovation

Page 63: LCEU14: How to run a Collaborative Project - Lars Kurth

Never forget that open sourceand community are aboutPEOPLE

Page 64: LCEU14: How to run a Collaborative Project - Lars Kurth

Thank You!Please rate the talk

www.slideshare.net/xen_com_mgr/