Your SlideShare is downloading. ×
0
Creating a Developer Community
Creating a Developer Community
Creating a Developer Community
Creating a Developer Community
Creating a Developer Community
Creating a Developer Community
Creating a Developer Community
Creating a Developer Community
Creating a Developer Community
Creating a Developer Community
Creating a Developer Community
Creating a Developer Community
Creating a Developer Community
Creating a Developer Community
Creating a Developer Community
Creating a Developer Community
Creating a Developer Community
Creating a Developer Community
Creating a Developer Community
Creating a Developer Community
Creating a Developer Community
Creating a Developer Community
Creating a Developer Community
Creating a Developer Community
Creating a Developer Community
Creating a Developer Community
Creating a Developer Community
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Creating a Developer Community

7,367

Published on

My talk at Monki Gras. 2012 Feb, London

My talk at Monki Gras. 2012 Feb, London

Published in: Technology
0 Comments
25 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
7,367
On Slideshare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
113
Comments
0
Likes
25
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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

×