SlideShare a Scribd company logo
©2010 CloudBees, Inc. All Rights
Reserved
©2010 CloudBees, Inc. All Rights
Reserved
Creating a Developer Community
Kohsuke Kawaguchi
Architect, CloudBees, Inc.
©2010 CloudBees, Inc. All Rights
Reserved
2©2010 CloudBees, Inc. All Rights
Reserved
What is Jenkins?
• Server app for developers
– Called “Continuous Integration server”
• Extensible via plugins
• Easy to get started & configure
jenkins-ci.org
©2010 CloudBees, Inc. All Rights
Reserved
3©2010 CloudBees, Inc. All Rights
Reserved
Jenkins, by the numbers
• 2004 Started as a hobby project
• 2006 2nd committer join the project
• 2008 Jenkins became my day job
• 2012
– 450 releases
– 450+ plugins
– 300+ developers
– 27K installations, 500K users(?)
©2010 CloudBees, Inc. All Rights
Reserved
4©2010 CloudBees, Inc. All Rights
Reserved
Hence my talk today
• How to create a developer community?
– Without any significant resources
• I think I have some recipes to share
– Tried & proven in multiple projects
©2010 CloudBees, Inc. All Rights
Reserved
5©2010 CloudBees, Inc. All Rights
Reserved
Models of OSS projects
• Company-sponsored (JBoss, Spring, etc)
– Dominated by a single entity
– User community, yes, but developer
community?
• Foundation (Apache, Eclipse, etc.)
– Established existing culture, brand, process
• Neither of them work for small projects
©2010 CloudBees, Inc. All Rights
Reserved
6©2010 CloudBees, Inc. All Rights
Reserved
Every developer starts as a visitor
Visitor
User
Developer
©2010 CloudBees, Inc. All Rights
Reserved
7©2010 CloudBees, Inc. All Rights
Reserved
Think about Conversion Funnel
• Visitor to user
– Download, install, initial configuration, …
• User to developer
– Obtain source code, build, run, contribute, …
• Obstacles, however little, add up quickly
• You don’t see the lost opportunities
©2010 CloudBees, Inc. All Rights
Reserved
8©2010 CloudBees, Inc. All Rights
Reserved
Download link? How hard is that…
©2010 CloudBees, Inc. All Rights
Reserved
9©2010 CloudBees, Inc. All Rights
Reserved
©2010 CloudBees, Inc. All Rights
Reserved
10©2010 CloudBees, Inc. All Rights
Reserved
But obvious it’s not…
©2010 CloudBees, Inc. All Rights
Reserved
11©2010 CloudBees, Inc. All Rights
Reserved
But obvious it’s not…
©2010 CloudBees, Inc. All Rights
Reserved
12©2010 CloudBees, Inc. All Rights
Reserved
But obvious it’s not…
©2010 CloudBees, Inc. All Rights
Reserved
13©2010 CloudBees, Inc. All Rights
Reserved
But obvious it’s not…
©2010 CloudBees, Inc. All Rights
Reserved
14©2010 CloudBees, Inc. All Rights
Reserved
What to do after download?
• Installation guide
– 31 page PDF
• Quick start guide
– 15 page PDF
©2010 CloudBees, Inc. All Rights
Reserved
15©2010 CloudBees, Inc. All Rights
Reserved
User support
• Great opportunity to convert users to
developers
– Catch them when they are willing to spend
some efforts
– Push source code in front of them
©2010 CloudBees, Inc. All Rights
Reserved
16©2010 CloudBees, Inc. All Rights
Reserved
Make them read code
• Developers tend to forget about this
• Lot can be done to improve experience
– Online browsing
– Source code cross reference
– Aggregate multiple modules
– Better documentation
©2010 CloudBees, Inc. All Rights
Reserved
17©2010 CloudBees, Inc. All Rights
Reserved
Let them hack code
• Is it obvious how to check out code?
• How to build/run/test/debug it?
• Common pitfalls
– Lots of additional pre-requisites
– Non obvious failure mode when you make
mistake
©2010 CloudBees, Inc. All Rights
Reserved
18©2010 CloudBees, Inc. All Rights
Reserved
Modularity
• Your big app needs to be split into pieces
– Pieces that are individually useful
• Why?
– Some people care about one piece but not
your big app
– Every piece reused by one developer gets
100s of users
– It’s a good software engineering anyway
©2010 CloudBees, Inc. All Rights
Reserved
19©2010 CloudBees, Inc. All Rights
Reserved
Programmability
• Every software should be a library
– Let other programs talk to your program
– There’s always a layer above you
• Every one developer building on top of
you = 100s of users
• Don’t work on the same dish
– Split the meal to multiple dishes instead
©2010 CloudBees, Inc. All Rights
Reserved
20©2010 CloudBees, Inc. All Rights
Reserved
Division of labor > Collaboration
• Collaborating on the same code is hard
– Communication is painful
– Time zones aren’t disappearing
– Difference of opinions, practices, & beliefs
– Especially so for faceless OSS collaboration
• Collaboration doesn’t scale
– Every new contributor needs your time
©2010 CloudBees, Inc. All Rights
Reserved
21©2010 CloudBees, Inc. All Rights
Reserved
Therefore, silo is a good thing
• Extensibility (aka plugins)
– e.g., Eclipse, Ant, Maven, Jenkins, …
– Requirement for building a developer
community
• Principles
– Modularity taken to its logical consequences
– Users should see seamless software
©2010 CloudBees, Inc. All Rights
Reserved
22©2010 CloudBees, Inc. All Rights
Reserved
Everyone can claim they’ve got extensibility
• Symptoms of fake extensibility
– One API for internal use, another for plugins
– There are things “core” can do that plugins
can’t
– Features from plugins look different
• Core has to live by the same rules you
impose on plugins
©2010 CloudBees, Inc. All Rights
Reserved
23©2010 CloudBees, Inc. All Rights
Reserved
It works because…
• You don’t see “crappy” code of others
• You don’t need to reject “whacky” ideas
– From time to time other people will prove
you wrong
– Encourages innovations without your making
risky bets
• It’s scalable
– New plugins have ~0 overhead to you
• People feel sense of ownership/stake
©2010 CloudBees, Inc. All Rights
Reserved
24©2010 CloudBees, Inc. All Rights
Reserved
Extensibility alone is not enough
• Center of gravity is needed
– Or else devs will do it in their own caves
– Failed example: Ant
• Benefits
– Sustains the project when people move on
– Grows new core developers
– Enables sharing, reuse, and improvements
©2010 CloudBees, Inc. All Rights
Reserved
25©2010 CloudBees, Inc. All Rights
Reserved
Center of gravity in Jenkins: Update Center
• Mechanism to distribute plugins
– This is how users install them
• In Jenkins, this is tied to source code
hosting
• One commit access for all repositories
©2010 CloudBees, Inc. All Rights
Reserved
26©2010 CloudBees, Inc. All Rights
Reserved
Lowering the barrier to entry
• Remember the funnel
– Make something easy, and get more of them
• In Jenkins, everyone gets a commit
access just by asking
– Akin to Wikipedia
• Encourages small contributions
• Made feasible with silo approach
©2010 CloudBees, Inc. All Rights
Reserved
27©2010 CloudBees, Inc. All Rights
Reserved
Conclusions
• There are many shapes and forms to
OSS projects
– Don’t blindly follow what big guys are doing
• Code is just one piece of puzzle
• Make everything easy, relentlessly
• Bend over backward to make lives easier
for other people

More Related Content

What's hot (11)

PDF
jQuery Foundation Keynote
Richard Worth
 
PDF
Developer Marketing: Tactics & Technology
Murtza Manzur
 
PPT
jQuery Conference 2010 - Getting Involved
Ralph Whitbeck
 
PPTX
DevOps Indonesia #13 - annoucement
DevOps Indonesia
 
PPTX
SPA Philly Code Camp
Jennifer Kenderdine
 
PDF
Social Network-Vinfotech
RanuJain
 
PDF
Multisite Content Deployments for Media Organizations
Dick Olsson
 
PPTX
Women Who Mule - Workshop series: Create your own blog from scratch without a...
Alexandra N. Martinez
 
PDF
What Really Changed with Drupal 8
Dick Olsson
 
KEY
Guardian devexp and_discovery
Ade Oshineye
 
PPTX
WordPress Workshop
Purushottam Dahal
 
jQuery Foundation Keynote
Richard Worth
 
Developer Marketing: Tactics & Technology
Murtza Manzur
 
jQuery Conference 2010 - Getting Involved
Ralph Whitbeck
 
DevOps Indonesia #13 - annoucement
DevOps Indonesia
 
SPA Philly Code Camp
Jennifer Kenderdine
 
Social Network-Vinfotech
RanuJain
 
Multisite Content Deployments for Media Organizations
Dick Olsson
 
Women Who Mule - Workshop series: Create your own blog from scratch without a...
Alexandra N. Martinez
 
What Really Changed with Drupal 8
Dick Olsson
 
Guardian devexp and_discovery
Ade Oshineye
 
WordPress Workshop
Purushottam Dahal
 

Viewers also liked (20)

PDF
The Power of Community
Prasetiya Mulya Business School
 
PDF
Value Creation Practice in Brand Community
Prasetiya Mulya Business School
 
PPTX
The foundations of brand communities
James Li
 
PPSX
Online Brand Community Development
La French Tech
 
PPTX
Brand communities: Tips
carole888
 
PDF
Heroku in Japan
Ayumu Aizawa
 
PPTX
The Fundamentals of Developer Marketing - 2013
Bruce Jones
 
KEY
Cultivating Your Developer Community
Diane (Bisgeier) Tate
 
PPTX
Building a developer community around hardware + software
Amanda Whaley
 
PDF
Node1 developer marketing
Gerald Been
 
PDF
Developer Outreach for Firefox OS - Mozcamp India - 2014-06-22
Frédéric Harper
 
PDF
Necessity of Devangelists
Tony Blank
 
PDF
Developers Giving Back
Diane (Bisgeier) Tate
 
PDF
Developer Marketing - API Days
Caroline Lewko
 
PPT
Catchy Developer Marketing (B2D) Agency. An overview of services.
Richard Hurring
 
PDF
Igniting Developer Community - I Love APIs Conference 2015
Adam FitzGerald
 
PPTX
Building A Business-Facing Mobile Developer Community
ProgrammableWeb
 
PPT
It Takes a Community to Raise a Brand, Not a Campaign
Sean Moffitt
 
PDF
PulsoConf: Platform & Community - Dev Outreach @ Evernote
Chris Traganos
 
PDF
How to Build an Influencer Program (That Gets Results)
Onalytica
 
The Power of Community
Prasetiya Mulya Business School
 
Value Creation Practice in Brand Community
Prasetiya Mulya Business School
 
The foundations of brand communities
James Li
 
Online Brand Community Development
La French Tech
 
Brand communities: Tips
carole888
 
Heroku in Japan
Ayumu Aizawa
 
The Fundamentals of Developer Marketing - 2013
Bruce Jones
 
Cultivating Your Developer Community
Diane (Bisgeier) Tate
 
Building a developer community around hardware + software
Amanda Whaley
 
Node1 developer marketing
Gerald Been
 
Developer Outreach for Firefox OS - Mozcamp India - 2014-06-22
Frédéric Harper
 
Necessity of Devangelists
Tony Blank
 
Developers Giving Back
Diane (Bisgeier) Tate
 
Developer Marketing - API Days
Caroline Lewko
 
Catchy Developer Marketing (B2D) Agency. An overview of services.
Richard Hurring
 
Igniting Developer Community - I Love APIs Conference 2015
Adam FitzGerald
 
Building A Business-Facing Mobile Developer Community
ProgrammableWeb
 
It Takes a Community to Raise a Brand, Not a Campaign
Sean Moffitt
 
PulsoConf: Platform & Community - Dev Outreach @ Evernote
Chris Traganos
 
How to Build an Influencer Program (That Gets Results)
Onalytica
 
Ad

Similar to Creating a Developer Community (20)

PPTX
How we made jenkins community
Kohsuke Kawaguchi
 
PPTX
Opening opensource : The Jenkins Way
Nicolas De Loof
 
PDF
Java / Opening Open Source the Jenkins Way - Nicolas de Loof, CloudBees
Paris Open Source Summit
 
PPTX
Amazon Web Services and PaaS - Enterprise Java for the Cloud Era? - Mark Pric...
jaxconf
 
PPTX
Jumping from Continuous Integration to Continuous Delivery with Jenkins Enter...
CloudBees
 
PDF
Netflix Case Study - AWS
Heath Dorn
 
PPTX
Ma forge++ : @Cloud
Nicolas De Loof
 
PDF
Continuous Delivery with Jenkins Enterprise and IBM UrbanCode Deploy
IBM UrbanCode Products
 
PPTX
Getting Started with PaaS
CloudBees
 
PPTX
Getting Started with Platform-as-a-Service
CloudBees
 
PPT
How can Liferay Developers, Deployers move to the Cloud
CloudBees
 
PPTX
Doing Business with OpenSource - a short (unofficial) CloudBees story
Nicolas De Loof
 
PDF
GitOps, Jenkins X &Future of CI/CD
Rakuten Group, Inc.
 
PPTX
Moving from Legacy Development Tools to transformative DevOps with Enterprise...
Infostretch
 
PPTX
Large scale automation with jenkins
Kohsuke Kawaguchi
 
PDF
Standardizing Jenkins with CloudBees Jenkins Team
DevOps.com
 
PDF
Standardizing Jenkins with CloudBees Jenkins Team
Deborah Schalm
 
PDF
7 Ways to Optimize Hudson in Production
CloudBees
 
PDF
Jenkins Enterprise by CloudBees Webinar
CloudBees
 
PDF
Master Continuous Delivery with CloudBees Jenkins Platform
dcjuengst
 
How we made jenkins community
Kohsuke Kawaguchi
 
Opening opensource : The Jenkins Way
Nicolas De Loof
 
Java / Opening Open Source the Jenkins Way - Nicolas de Loof, CloudBees
Paris Open Source Summit
 
Amazon Web Services and PaaS - Enterprise Java for the Cloud Era? - Mark Pric...
jaxconf
 
Jumping from Continuous Integration to Continuous Delivery with Jenkins Enter...
CloudBees
 
Netflix Case Study - AWS
Heath Dorn
 
Ma forge++ : @Cloud
Nicolas De Loof
 
Continuous Delivery with Jenkins Enterprise and IBM UrbanCode Deploy
IBM UrbanCode Products
 
Getting Started with PaaS
CloudBees
 
Getting Started with Platform-as-a-Service
CloudBees
 
How can Liferay Developers, Deployers move to the Cloud
CloudBees
 
Doing Business with OpenSource - a short (unofficial) CloudBees story
Nicolas De Loof
 
GitOps, Jenkins X &Future of CI/CD
Rakuten Group, Inc.
 
Moving from Legacy Development Tools to transformative DevOps with Enterprise...
Infostretch
 
Large scale automation with jenkins
Kohsuke Kawaguchi
 
Standardizing Jenkins with CloudBees Jenkins Team
DevOps.com
 
Standardizing Jenkins with CloudBees Jenkins Team
Deborah Schalm
 
7 Ways to Optimize Hudson in Production
CloudBees
 
Jenkins Enterprise by CloudBees Webinar
CloudBees
 
Master Continuous Delivery with CloudBees Jenkins Platform
dcjuengst
 
Ad

More from Kohsuke Kawaguchi (20)

PPTX
Jenkins 2.0 (日本語)
Kohsuke Kawaguchi
 
PPTX
Workflow, container, and beyond
Kohsuke Kawaguchi
 
PPTX
Jenkins User Conference 東京 2015
Kohsuke Kawaguchi
 
PPTX
JavaOne 2014: Next Step in Automation: Elastic Build Environment
Kohsuke Kawaguchi
 
PPTX
On sharing ideas & sharing code
Kohsuke Kawaguchi
 
PPTX
コードの互換性と進化の両立
Kohsuke Kawaguchi
 
PPTX
Jenkins User Conference 2013: Literate, multi-branch, mobile and more
Kohsuke Kawaguchi
 
PPTX
Jenkins User Conference 2013 Palo Alto: Keynote
Kohsuke Kawaguchi
 
PPTX
Jenkins State of union 2013
Kohsuke Kawaguchi
 
PPTX
第六回Jenkins勉強会
Kohsuke Kawaguchi
 
PPTX
Jenkins User Conference 2012 San Francisco
Kohsuke Kawaguchi
 
PPTX
Jenkins+Gitによる検証済みマージ(30分版)
Kohsuke Kawaguchi
 
PPTX
ここ最近のJenkins新機能
Kohsuke Kawaguchi
 
PPTX
Jenkins user conference 東京
Kohsuke Kawaguchi
 
PPTX
Dev@cloudの実装
Kohsuke Kawaguchi
 
PPTX
Developer summit continuous deliveryとjenkins
Kohsuke Kawaguchi
 
PPTX
Jenkins user conference 2011
Kohsuke Kawaguchi
 
PPTX
プロジェクト現状報告・Rubyによるjenkinsプラグイン開発
Kohsuke Kawaguchi
 
PPTX
Current state of Jenkins
Kohsuke Kawaguchi
 
PPTX
Jenkins勉強会第二回
Kohsuke Kawaguchi
 
Jenkins 2.0 (日本語)
Kohsuke Kawaguchi
 
Workflow, container, and beyond
Kohsuke Kawaguchi
 
Jenkins User Conference 東京 2015
Kohsuke Kawaguchi
 
JavaOne 2014: Next Step in Automation: Elastic Build Environment
Kohsuke Kawaguchi
 
On sharing ideas & sharing code
Kohsuke Kawaguchi
 
コードの互換性と進化の両立
Kohsuke Kawaguchi
 
Jenkins User Conference 2013: Literate, multi-branch, mobile and more
Kohsuke Kawaguchi
 
Jenkins User Conference 2013 Palo Alto: Keynote
Kohsuke Kawaguchi
 
Jenkins State of union 2013
Kohsuke Kawaguchi
 
第六回Jenkins勉強会
Kohsuke Kawaguchi
 
Jenkins User Conference 2012 San Francisco
Kohsuke Kawaguchi
 
Jenkins+Gitによる検証済みマージ(30分版)
Kohsuke Kawaguchi
 
ここ最近のJenkins新機能
Kohsuke Kawaguchi
 
Jenkins user conference 東京
Kohsuke Kawaguchi
 
Dev@cloudの実装
Kohsuke Kawaguchi
 
Developer summit continuous deliveryとjenkins
Kohsuke Kawaguchi
 
Jenkins user conference 2011
Kohsuke Kawaguchi
 
プロジェクト現状報告・Rubyによるjenkinsプラグイン開発
Kohsuke Kawaguchi
 
Current state of Jenkins
Kohsuke Kawaguchi
 
Jenkins勉強会第二回
Kohsuke Kawaguchi
 

Recently uploaded (20)

PPTX
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
PDF
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
PDF
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
PDF
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PPT
Interview paper part 3, It is based on Interview Prep
SoumyadeepGhosh39
 
PDF
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PDF
July Patch Tuesday
Ivanti
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
PDF
SFWelly Summer 25 Release Highlights July 2025
Anna Loughnan Colquhoun
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
PDF
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
PPTX
MSP360 Backup Scheduling and Retention Best Practices.pptx
MSP360
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PDF
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
Interview paper part 3, It is based on Interview Prep
SoumyadeepGhosh39
 
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
July Patch Tuesday
Ivanti
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 
SFWelly Summer 25 Release Highlights July 2025
Anna Loughnan Colquhoun
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
MSP360 Backup Scheduling and Retention Best Practices.pptx
MSP360
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 

Creating a Developer Community

  • 1. ©2010 CloudBees, Inc. All Rights Reserved ©2010 CloudBees, Inc. All Rights Reserved Creating a Developer Community Kohsuke Kawaguchi Architect, CloudBees, Inc.
  • 2. ©2010 CloudBees, Inc. All Rights Reserved 2©2010 CloudBees, Inc. All Rights Reserved What is Jenkins? • Server app for developers – Called “Continuous Integration server” • Extensible via plugins • Easy to get started & configure jenkins-ci.org
  • 3. ©2010 CloudBees, Inc. All Rights Reserved 3©2010 CloudBees, Inc. All Rights Reserved Jenkins, by the numbers • 2004 Started as a hobby project • 2006 2nd committer join the project • 2008 Jenkins became my day job • 2012 – 450 releases – 450+ plugins – 300+ developers – 27K installations, 500K users(?)
  • 4. ©2010 CloudBees, Inc. All Rights Reserved 4©2010 CloudBees, Inc. All Rights Reserved Hence my talk today • How to create a developer community? – Without any significant resources • I think I have some recipes to share – Tried & proven in multiple projects
  • 5. ©2010 CloudBees, Inc. All Rights Reserved 5©2010 CloudBees, Inc. All Rights Reserved Models of OSS projects • Company-sponsored (JBoss, Spring, etc) – Dominated by a single entity – User community, yes, but developer community? • Foundation (Apache, Eclipse, etc.) – Established existing culture, brand, process • Neither of them work for small projects
  • 6. ©2010 CloudBees, Inc. All Rights Reserved 6©2010 CloudBees, Inc. All Rights Reserved Every developer starts as a visitor Visitor User Developer
  • 7. ©2010 CloudBees, Inc. All Rights Reserved 7©2010 CloudBees, Inc. All Rights Reserved Think about Conversion Funnel • Visitor to user – Download, install, initial configuration, … • User to developer – Obtain source code, build, run, contribute, … • Obstacles, however little, add up quickly • You don’t see the lost opportunities
  • 8. ©2010 CloudBees, Inc. All Rights Reserved 8©2010 CloudBees, Inc. All Rights Reserved Download link? How hard is that…
  • 9. ©2010 CloudBees, Inc. All Rights Reserved 9©2010 CloudBees, Inc. All Rights Reserved
  • 10. ©2010 CloudBees, Inc. All Rights Reserved 10©2010 CloudBees, Inc. All Rights Reserved But obvious it’s not…
  • 11. ©2010 CloudBees, Inc. All Rights Reserved 11©2010 CloudBees, Inc. All Rights Reserved But obvious it’s not…
  • 12. ©2010 CloudBees, Inc. All Rights Reserved 12©2010 CloudBees, Inc. All Rights Reserved But obvious it’s not…
  • 13. ©2010 CloudBees, Inc. All Rights Reserved 13©2010 CloudBees, Inc. All Rights Reserved But obvious it’s not…
  • 14. ©2010 CloudBees, Inc. All Rights Reserved 14©2010 CloudBees, Inc. All Rights Reserved What to do after download? • Installation guide – 31 page PDF • Quick start guide – 15 page PDF
  • 15. ©2010 CloudBees, Inc. All Rights Reserved 15©2010 CloudBees, Inc. All Rights Reserved User support • Great opportunity to convert users to developers – Catch them when they are willing to spend some efforts – Push source code in front of them
  • 16. ©2010 CloudBees, Inc. All Rights Reserved 16©2010 CloudBees, Inc. All Rights Reserved Make them read code • Developers tend to forget about this • Lot can be done to improve experience – Online browsing – Source code cross reference – Aggregate multiple modules – Better documentation
  • 17. ©2010 CloudBees, Inc. All Rights Reserved 17©2010 CloudBees, Inc. All Rights Reserved Let them hack code • Is it obvious how to check out code? • How to build/run/test/debug it? • Common pitfalls – Lots of additional pre-requisites – Non obvious failure mode when you make mistake
  • 18. ©2010 CloudBees, Inc. All Rights Reserved 18©2010 CloudBees, Inc. All Rights Reserved Modularity • Your big app needs to be split into pieces – Pieces that are individually useful • Why? – Some people care about one piece but not your big app – Every piece reused by one developer gets 100s of users – It’s a good software engineering anyway
  • 19. ©2010 CloudBees, Inc. All Rights Reserved 19©2010 CloudBees, Inc. All Rights Reserved Programmability • Every software should be a library – Let other programs talk to your program – There’s always a layer above you • Every one developer building on top of you = 100s of users • Don’t work on the same dish – Split the meal to multiple dishes instead
  • 20. ©2010 CloudBees, Inc. All Rights Reserved 20©2010 CloudBees, Inc. All Rights Reserved Division of labor > Collaboration • Collaborating on the same code is hard – Communication is painful – Time zones aren’t disappearing – Difference of opinions, practices, & beliefs – Especially so for faceless OSS collaboration • Collaboration doesn’t scale – Every new contributor needs your time
  • 21. ©2010 CloudBees, Inc. All Rights Reserved 21©2010 CloudBees, Inc. All Rights Reserved Therefore, silo is a good thing • Extensibility (aka plugins) – e.g., Eclipse, Ant, Maven, Jenkins, … – Requirement for building a developer community • Principles – Modularity taken to its logical consequences – Users should see seamless software
  • 22. ©2010 CloudBees, Inc. All Rights Reserved 22©2010 CloudBees, Inc. All Rights Reserved Everyone can claim they’ve got extensibility • Symptoms of fake extensibility – One API for internal use, another for plugins – There are things “core” can do that plugins can’t – Features from plugins look different • Core has to live by the same rules you impose on plugins
  • 23. ©2010 CloudBees, Inc. All Rights Reserved 23©2010 CloudBees, Inc. All Rights Reserved It works because… • You don’t see “crappy” code of others • You don’t need to reject “whacky” ideas – From time to time other people will prove you wrong – Encourages innovations without your making risky bets • It’s scalable – New plugins have ~0 overhead to you • People feel sense of ownership/stake
  • 24. ©2010 CloudBees, Inc. All Rights Reserved 24©2010 CloudBees, Inc. All Rights Reserved Extensibility alone is not enough • Center of gravity is needed – Or else devs will do it in their own caves – Failed example: Ant • Benefits – Sustains the project when people move on – Grows new core developers – Enables sharing, reuse, and improvements
  • 25. ©2010 CloudBees, Inc. All Rights Reserved 25©2010 CloudBees, Inc. All Rights Reserved Center of gravity in Jenkins: Update Center • Mechanism to distribute plugins – This is how users install them • In Jenkins, this is tied to source code hosting • One commit access for all repositories
  • 26. ©2010 CloudBees, Inc. All Rights Reserved 26©2010 CloudBees, Inc. All Rights Reserved Lowering the barrier to entry • Remember the funnel – Make something easy, and get more of them • In Jenkins, everyone gets a commit access just by asking – Akin to Wikipedia • Encourages small contributions • Made feasible with silo approach
  • 27. ©2010 CloudBees, Inc. All Rights Reserved 27©2010 CloudBees, Inc. All Rights Reserved Conclusions • There are many shapes and forms to OSS projects – Don’t blindly follow what big guys are doing • Code is just one piece of puzzle • Make everything easy, relentlessly • Bend over backward to make lives easier for other people