©2010 CloudBees, Inc. All Rights
Reserved
©2010 CloudBees, Inc. All Rights
Reserved
Creating a Developer Community
Kohsuke...
©2010 CloudBees, Inc. All Rights
Reserved
2©2010 CloudBees, Inc. All Rights
Reserved
What is Jenkins?
• Server app for dev...
©2010 CloudBees, Inc. All Rights
Reserved
3©2010 CloudBees, Inc. All Rights
Reserved
Jenkins, by the numbers
• 2004 Starte...
©2010 CloudBees, Inc. All Rights
Reserved
4©2010 CloudBees, Inc. All Rights
Reserved
Hence my talk today
• How to create a...
©2010 CloudBees, Inc. All Rights
Reserved
5©2010 CloudBees, Inc. All Rights
Reserved
Models of OSS projects
• Company-spon...
©2010 CloudBees, Inc. All Rights
Reserved
6©2010 CloudBees, Inc. All Rights
Reserved
Every developer starts as a visitor
V...
©2010 CloudBees, Inc. All Rights
Reserved
7©2010 CloudBees, Inc. All Rights
Reserved
Think about Conversion Funnel
• Visit...
©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?
• Install...
©2010 CloudBees, Inc. All Rights
Reserved
15©2010 CloudBees, Inc. All Rights
Reserved
User support
• Great opportunity to ...
©2010 CloudBees, Inc. All Rights
Reserved
16©2010 CloudBees, Inc. All Rights
Reserved
Make them read code
• Developers ten...
©2010 CloudBees, Inc. All Rights
Reserved
17©2010 CloudBees, Inc. All Rights
Reserved
Let them hack code
• Is it obvious h...
©2010 CloudBees, Inc. All Rights
Reserved
18©2010 CloudBees, Inc. All Rights
Reserved
Modularity
• Your big app needs to b...
©2010 CloudBees, Inc. All Rights
Reserved
19©2010 CloudBees, Inc. All Rights
Reserved
Programmability
• Every software sho...
©2010 CloudBees, Inc. All Rights
Reserved
20©2010 CloudBees, Inc. All Rights
Reserved
Division of labor > Collaboration
• ...
©2010 CloudBees, Inc. All Rights
Reserved
21©2010 CloudBees, Inc. All Rights
Reserved
Therefore, silo is a good thing
• Ex...
©2010 CloudBees, Inc. All Rights
Reserved
22©2010 CloudBees, Inc. All Rights
Reserved
Everyone can claim they’ve got exten...
©2010 CloudBees, Inc. All Rights
Reserved
23©2010 CloudBees, Inc. All Rights
Reserved
It works because…
• You don’t see “c...
©2010 CloudBees, Inc. All Rights
Reserved
24©2010 CloudBees, Inc. All Rights
Reserved
Extensibility alone is not enough
• ...
©2010 CloudBees, Inc. All Rights
Reserved
25©2010 CloudBees, Inc. All Rights
Reserved
Center of gravity in Jenkins: Update...
©2010 CloudBees, Inc. All Rights
Reserved
26©2010 CloudBees, Inc. All Rights
Reserved
Lowering the barrier to entry
• Reme...
©2010 CloudBees, Inc. All Rights
Reserved
27©2010 CloudBees, Inc. All Rights
Reserved
Conclusions
• There are many shapes ...
Upcoming SlideShare
Loading in...5
×

Creating a Developer Community

7,516

Published on

My talk at Monki Gras. 2012 Feb, London

Published in: Technology

Creating a Developer Community

  1. 1. ©2010 CloudBees, Inc. All Rights Reserved ©2010 CloudBees, Inc. All Rights Reserved Creating a Developer Community Kohsuke Kawaguchi Architect, CloudBees, Inc.
  2. 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. 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. 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. 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. 6. ©2010 CloudBees, Inc. All Rights Reserved 6©2010 CloudBees, Inc. All Rights Reserved Every developer starts as a visitor Visitor User Developer
  7. 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. 8. ©2010 CloudBees, Inc. All Rights Reserved 8©2010 CloudBees, Inc. All Rights Reserved Download link? How hard is that…
  9. 9. ©2010 CloudBees, Inc. All Rights Reserved 9©2010 CloudBees, Inc. All Rights Reserved
  10. 10. ©2010 CloudBees, Inc. All Rights Reserved 10©2010 CloudBees, Inc. All Rights Reserved But obvious it’s not…
  11. 11. ©2010 CloudBees, Inc. All Rights Reserved 11©2010 CloudBees, Inc. All Rights Reserved But obvious it’s not…
  12. 12. ©2010 CloudBees, Inc. All Rights Reserved 12©2010 CloudBees, Inc. All Rights Reserved But obvious it’s not…
  13. 13. ©2010 CloudBees, Inc. All Rights Reserved 13©2010 CloudBees, Inc. All Rights Reserved But obvious it’s not…
  14. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×