Living with
1000 Open Source
Projects
Dr Nic Williams, tallest person at Mocra
@drnic · http://drnicwilliams.com · http://...
Pacific Ocean Trips
Pacific Ocean Trips
RubyConf 2007:
9am Sunday 50% Awake
Pacific Ocean Trips
RubyConf 2007:
9am Sunday 50% Awake
FutureRuby 2009:
10am Sunday 50% Canadian
Pacific Ocean Trips
RubyConf 2007:
9am Sunday 50% Awake
FutureRuby 2009:
10am Sunday 50% Canadian
Two types
(OSS project)
founders…
A. Nurture and converse

 
 “Do you care?”
B. Previously A
  “Do it yourself”
Life as an A-type is awesome…
Life as an A-type is awesome…
                  until it is not
“Saying Goodbye”
Jamis vs Dr Nic
   Proof of Jamis’s awesomeness

                                            Downloads

500000


375000


...
Jamis vs Dr Nic
   Proof of Jamis’s awesomeness

                                            Downloads

500000


375000


...
Jamis vs Dr Nic
   Proof of Jamis’s awesomeness

                                            Downloads

500000


375000


...
Jamis vs Dr Nic
   Proof of Jamis’s awesomeness

                                            Downloads

500000


375000


...
Jamis vs Dr Nic
   Proof of Jamis’s awesomeness

                                            Downloads

500000


375000


...
!
           Disclaimer


My projects aren’t wildly popular
80


60


40


20


 0
     mid-2007   mid-2008   mid-2009




I just have heaps of them
Some formulas…
X projects/yr x 40 years = ?
5 projects/yr x 40 years = 200
25 projects/yr x 40 years = 1000


1000 project...
OSS projects don’t scale
but neither does raising
   pets nor children
A dog trainer




having a pet dog vs maintaining many dogs
A teacher




having a pet child vs maintaining many children
An OSS owner




having a pet project vs maintaining many projects
What to maintain?




pet projects and libraries you need each day
and abandon the rest




               http://www.flickr.com/photos/robbyrussell/243693247/
Maintenance Goal:
  Zero Effort
Aim: Manage expectations
•   Publish project status

            •   Facilitate group
                therapy

            •   Forward emails to
  ...
Aim: Community self-sufficiency
Centralised patches
Centralised patches
$ gem install defunkt-github

#   super lazy
$   cd your/project
$   gh pull username --merge
$   rake test
$   git push

...
Add: Admins/contributors
Aim: Zero maintenance cost
require 'rubygems'
gem 'hoe', '>= 2.1.0'
require 'hoe'

Hoe.plugin :newgem
Hoe.plugin :cucumberfeatures

Hoe.spec 'looksee...
ChocTop.new do   |s|
  s.host     =   'commitchat.com'
  s.base_url =   'http://commitchat.com/dl'
  s.remote_dir   = '/op...
Packaging: ChocTop for DMGs
•   Test frameworks: ...............
•   Reuse processes: rake
•   Create tools: newgem
•   Promote your process: blog



...
5 mins to run tests




30 mins looking at bug reports

     Aim: zero defects
5 mins to run tests




0       7.5     15     22.5      30



30 mins looking at bug reports

     Aim: zero defects
$ cucumber features/development.feature

Scenario: Generate RubyGem
  Given this project is active project folder
  And "p...
Aim for zero
•   Don’t use it? Don’t maintain it
•   Manage expectations
•   Community self-sufficiency
•   Zero process co...
Use your spare time
•   Find a hobby
•   Talk to your spouse
•   Create more projects
Create a new project
newgem my_project
cd my_project
git init
git add .
git commit -m "initial"
github create-from-local
Thank you Canada




            Dr Nic Williams
          drnicwilliams.com · @drnic
Living With 1000 Open Source Projects
Upcoming SlideShare
Loading in...5
×

Living With 1000 Open Source Projects

18,740

Published on

I will be a developer for another 37 years; and by that time I might have created or maintained
500 to 1000 open source projects. In the last 3 years it is already a become maintenance challenge
and in another 37 years I may be begging to retire. That is, unless we can solve the problem today:
how to go from 1 to 1000 open source projects and still enjoy yourself.

This talk will challenge much of the dogma of open source and will make you rethink what is open source? And how the hell do you live with it once its written?

Published in: Technology, News & Politics

Living With 1000 Open Source Projects

  1. 1. Living with 1000 Open Source Projects Dr Nic Williams, tallest person at Mocra @drnic · http://drnicwilliams.com · http://mocra.com
  2. 2. Pacific Ocean Trips
  3. 3. Pacific Ocean Trips RubyConf 2007: 9am Sunday 50% Awake
  4. 4. Pacific Ocean Trips RubyConf 2007: 9am Sunday 50% Awake FutureRuby 2009: 10am Sunday 50% Canadian
  5. 5. Pacific Ocean Trips RubyConf 2007: 9am Sunday 50% Awake FutureRuby 2009: 10am Sunday 50% Canadian
  6. 6. Two types (OSS project) founders…
  7. 7. A. Nurture and converse “Do you care?”
  8. 8. B. Previously A “Do it yourself”
  9. 9. Life as an A-type is awesome…
  10. 10. Life as an A-type is awesome… until it is not
  11. 11. “Saying Goodbye”
  12. 12. Jamis vs Dr Nic Proof of Jamis’s awesomeness Downloads 500000 375000 250000 125000 0 Capistrano Composite Keys NewGem RubiGen source: http://gems.rubyforge.org/stats.html
  13. 13. Jamis vs Dr Nic Proof of Jamis’s awesomeness Downloads 500000 375000 250000 125000 0 Capistrano Composite Keys NewGem RubiGen source: http://gems.rubyforge.org/stats.html
  14. 14. Jamis vs Dr Nic Proof of Jamis’s awesomeness Downloads 500000 375000 250000 125000 0 Capistrano Composite Keys NewGem RubiGen source: http://gems.rubyforge.org/stats.html
  15. 15. Jamis vs Dr Nic Proof of Jamis’s awesomeness Downloads 500000 375000 250000 125000 0 Capistrano Composite Keys NewGem RubiGen source: http://gems.rubyforge.org/stats.html
  16. 16. Jamis vs Dr Nic Proof of Jamis’s awesomeness Downloads 500000 375000 250000 125000 0 Capistrano Composite Keys NewGem RubiGen source: http://gems.rubyforge.org/stats.html
  17. 17. ! Disclaimer My projects aren’t wildly popular
  18. 18. 80 60 40 20 0 mid-2007 mid-2008 mid-2009 I just have heaps of them
  19. 19. Some formulas… X projects/yr x 40 years = ? 5 projects/yr x 40 years = 200 25 projects/yr x 40 years = 1000 1000 projects x ½hr/wk = 500hr/wk There are only 168 hrs in a week
  20. 20. OSS projects don’t scale but neither does raising pets nor children
  21. 21. A dog trainer having a pet dog vs maintaining many dogs
  22. 22. A teacher having a pet child vs maintaining many children
  23. 23. An OSS owner having a pet project vs maintaining many projects
  24. 24. What to maintain? pet projects and libraries you need each day
  25. 25. and abandon the rest http://www.flickr.com/photos/robbyrussell/243693247/
  26. 26. Maintenance Goal: Zero Effort
  27. 27. Aim: Manage expectations
  28. 28. • Publish project status • Facilitate group therapy • Forward emails to mailing list Aim: Reduce bad karma
  29. 29. Aim: Community self-sufficiency
  30. 30. Centralised patches
  31. 31. Centralised patches
  32. 32. $ gem install defunkt-github # super lazy $ cd your/project $ gh pull username --merge $ rake test $ git push # update History.txt for next release Use: Command line tools
  33. 33. Add: Admins/contributors
  34. 34. Aim: Zero maintenance cost
  35. 35. require 'rubygems' gem 'hoe', '>= 2.1.0' require 'hoe' Hoe.plugin :newgem Hoe.plugin :cucumberfeatures Hoe.spec 'looksee' do developer 'George Ogata', 'george.ogata@gmail.com' end Packaging: Hoe/Echoe for Gems
  36. 36. ChocTop.new do |s| s.host = 'commitchat.com' s.base_url = 'http://commitchat.com/dl' s.remote_dir = '/opt/apps/commitchat/dl' s.background_file = "dmgbg.png" s.volume_icon = 'VolumeIcon.icns' s.app_icon_position = [106, 83] s.applications_icon_position = [422, 83] s.applications_icon = "dmgappico.png" end Packaging: ChocTop for DMGs
  37. 37. Packaging: ChocTop for DMGs
  38. 38. • Test frameworks: ............... • Reuse processes: rake • Create tools: newgem • Promote your process: blog Aim: zero process cost
  39. 39. 5 mins to run tests 30 mins looking at bug reports Aim: zero defects
  40. 40. 5 mins to run tests 0 7.5 15 22.5 30 30 mins looking at bug reports Aim: zero defects
  41. 41. $ cucumber features/development.feature Scenario: Generate RubyGem Given this project is active project folder And "pkg" folder is deleted When I invoke task "rake gem" Then folder "pkg" is created And file with name matching "pkg/*.gem" is created 1 scenario (1 passed) 6 steps (6 passed) QA test packaging
  42. 42. Aim for zero • Don’t use it? Don’t maintain it • Manage expectations • Community self-sufficiency • Zero process cost • Zero defects
  43. 43. Use your spare time • Find a hobby • Talk to your spouse • Create more projects
  44. 44. Create a new project newgem my_project cd my_project git init git add . git commit -m "initial" github create-from-local
  45. 45. Thank you Canada Dr Nic Williams drnicwilliams.com · @drnic
  1. A particular slide catching your eye?

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

×