SlideShare uma empresa Scribd logo
1 de 46
Living with
1000 Open Source
Projects
Dr Nic Williams, tallest person at Mocra
@drnic · http://drnicwilliams.com · http://mocra.com
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


250000


125000


     0
              Capistrano        Composite Keys          NewGem   RubiGen

  source: http://gems.rubyforge.org/stats.html
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
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
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
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
!
           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 projects x ½hr/wk = 500hr/wk
There are only 168 hrs in a week
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
                mailing list




Aim: Reduce bad karma
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

# update History.txt for next release




     Use: Command line tools
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' do
  developer 'George Ogata', 'george.ogata@gmail.com'
end




  Packaging: Hoe/Echoe for Gems
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
Packaging: ChocTop for DMGs
•   Test frameworks: ...............
•   Reuse processes: rake
•   Create tools: newgem
•   Promote your process: blog




Aim: zero process cost
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 "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
Aim for zero
•   Don’t use it? Don’t maintain it
•   Manage expectations
•   Community self-sufficiency
•   Zero process cost
•   Zero defects
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

Mais conteúdo relacionado

Semelhante a Living With 1000 Open Source Projects

MonoRails - GoGaRuCo 2012
MonoRails - GoGaRuCo 2012MonoRails - GoGaRuCo 2012
MonoRails - GoGaRuCo 2012
jackdanger
 
Seaside - Why should you care? (OSDC.fr 2010)
Seaside - Why should you care? (OSDC.fr 2010)Seaside - Why should you care? (OSDC.fr 2010)
Seaside - Why should you care? (OSDC.fr 2010)
jfitzell
 

Semelhante a Living With 1000 Open Source Projects (20)

Ignite Zurich Newsweek
Ignite Zurich   NewsweekIgnite Zurich   Newsweek
Ignite Zurich Newsweek
 
DevOps and the Importance of Single Source Code Repos 
DevOps and the Importance of Single Source Code Repos DevOps and the Importance of Single Source Code Repos 
DevOps and the Importance of Single Source Code Repos 
 
Engineering Velocity @indeed eng presented on Sept 24 2014 at Beyond Agile
Engineering Velocity @indeed eng presented on Sept 24 2014 at Beyond AgileEngineering Velocity @indeed eng presented on Sept 24 2014 at Beyond Agile
Engineering Velocity @indeed eng presented on Sept 24 2014 at Beyond Agile
 
Testing Storage Systems: Methodology and Common Pitfalls
Testing Storage Systems: Methodology and Common PitfallsTesting Storage Systems: Methodology and Common Pitfalls
Testing Storage Systems: Methodology and Common Pitfalls
 
2019 Top Lessons Learned Since the Phoenix Project Was Released
2019 Top Lessons Learned Since the Phoenix Project Was Released2019 Top Lessons Learned Since the Phoenix Project Was Released
2019 Top Lessons Learned Since the Phoenix Project Was Released
 
What can Bioinformaticians learn from YouTube?
What can Bioinformaticians learn from YouTube?What can Bioinformaticians learn from YouTube?
What can Bioinformaticians learn from YouTube?
 
Achievement Unlocked: Drive development, increase velocity, and write blissfu...
Achievement Unlocked: Drive development, increase velocity, and write blissfu...Achievement Unlocked: Drive development, increase velocity, and write blissfu...
Achievement Unlocked: Drive development, increase velocity, and write blissfu...
 
MVP Defined
MVP DefinedMVP Defined
MVP Defined
 
BeaconsAI engr 245 lean launchpad stanford 2019
BeaconsAI engr 245 lean launchpad stanford 2019BeaconsAI engr 245 lean launchpad stanford 2019
BeaconsAI engr 245 lean launchpad stanford 2019
 
MonoRails - GoGaRuCo 2012
MonoRails - GoGaRuCo 2012MonoRails - GoGaRuCo 2012
MonoRails - GoGaRuCo 2012
 
Continuous Integration, the minimum viable product
Continuous Integration, the minimum viable productContinuous Integration, the minimum viable product
Continuous Integration, the minimum viable product
 
Seaside - Why should you care? (OSDC.fr 2010)
Seaside - Why should you care? (OSDC.fr 2010)Seaside - Why should you care? (OSDC.fr 2010)
Seaside - Why should you care? (OSDC.fr 2010)
 
Cheapass.in — presented at JSFoo 2016
Cheapass.in — presented at JSFoo 2016Cheapass.in — presented at JSFoo 2016
Cheapass.in — presented at JSFoo 2016
 
The Unicorn Project and the Five Ideals.pdf
The Unicorn Project and the Five Ideals.pdfThe Unicorn Project and the Five Ideals.pdf
The Unicorn Project and the Five Ideals.pdf
 
The Seven Wastes of Software Development
The Seven Wastes of Software DevelopmentThe Seven Wastes of Software Development
The Seven Wastes of Software Development
 
My Futuristic Vision of the Future of Cassandra's Future - NGCC 2015
My Futuristic Vision of the Future of Cassandra's Future - NGCC 2015My Futuristic Vision of the Future of Cassandra's Future - NGCC 2015
My Futuristic Vision of the Future of Cassandra's Future - NGCC 2015
 
Leading A DevOps Transformation: Lessons Learned
Leading A DevOps Transformation: Lessons LearnedLeading A DevOps Transformation: Lessons Learned
Leading A DevOps Transformation: Lessons Learned
 
Splunk September 2023 User Group PDX.pdf
Splunk September 2023 User Group PDX.pdfSplunk September 2023 User Group PDX.pdf
Splunk September 2023 User Group PDX.pdf
 
Product Experimentation Pitfalls & How to Avoid Them
Product Experimentation Pitfalls & How to Avoid Them Product Experimentation Pitfalls & How to Avoid Them
Product Experimentation Pitfalls & How to Avoid Them
 
Product Experimentation Pitfalls & How to Avoid Them
Product Experimentation Pitfalls & How to Avoid Them Product Experimentation Pitfalls & How to Avoid Them
Product Experimentation Pitfalls & How to Avoid Them
 

Mais de Dr Nic Williams

RailsConf Keynote - History of Ruby
RailsConf Keynote - History of RubyRailsConf Keynote - History of Ruby
RailsConf Keynote - History of Ruby
Dr Nic Williams
 
Integration Testing With Cucumber How To Test Anything J A O O 2009
Integration Testing With  Cucumber    How To Test Anything    J A O O 2009Integration Testing With  Cucumber    How To Test Anything    J A O O 2009
Integration Testing With Cucumber How To Test Anything J A O O 2009
Dr Nic Williams
 
Rubygem Dev And Workflow
Rubygem Dev And WorkflowRubygem Dev And Workflow
Rubygem Dev And Workflow
Dr Nic Williams
 
Everyone Can Participate - Dr Nic Williams - Railssummit Brazil 2008
Everyone Can Participate - Dr Nic Williams - Railssummit Brazil 2008Everyone Can Participate - Dr Nic Williams - Railssummit Brazil 2008
Everyone Can Participate - Dr Nic Williams - Railssummit Brazil 2008
Dr Nic Williams
 

Mais de Dr Nic Williams (9)

RailsConf Keynote - History of Ruby
RailsConf Keynote - History of RubyRailsConf Keynote - History of Ruby
RailsConf Keynote - History of Ruby
 
What is your job at your ruby club?
What is your job at your ruby club?What is your job at your ruby club?
What is your job at your ruby club?
 
Integration Testing With Cucumber How To Test Anything J A O O 2009
Integration Testing With  Cucumber    How To Test Anything    J A O O 2009Integration Testing With  Cucumber    How To Test Anything    J A O O 2009
Integration Testing With Cucumber How To Test Anything J A O O 2009
 
Rubygem Dev And Workflow
Rubygem Dev And WorkflowRubygem Dev And Workflow
Rubygem Dev And Workflow
 
Everyone Can Participate - Dr Nic Williams - Railssummit Brazil 2008
Everyone Can Participate - Dr Nic Williams - Railssummit Brazil 2008Everyone Can Participate - Dr Nic Williams - Railssummit Brazil 2008
Everyone Can Participate - Dr Nic Williams - Railssummit Brazil 2008
 
Meta Meta Programming - EuRuKo2008
Meta Meta Programming -  EuRuKo2008Meta Meta Programming -  EuRuKo2008
Meta Meta Programming - EuRuKo2008
 
Why Use Rails by Dr Nic
Why Use Rails by  Dr NicWhy Use Rails by  Dr Nic
Why Use Rails by Dr Nic
 
RubyEnRails2007 - Dr Nic Williams - Keynote
RubyEnRails2007 - Dr Nic Williams - KeynoteRubyEnRails2007 - Dr Nic Williams - Keynote
RubyEnRails2007 - Dr Nic Williams - Keynote
 
RubyEnRails2007 - Dr Nic Williams - DIY Syntax
RubyEnRails2007 - Dr Nic Williams - DIY SyntaxRubyEnRails2007 - Dr Nic Williams - DIY Syntax
RubyEnRails2007 - Dr Nic Williams - DIY Syntax
 

Último

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Último (20)

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 

Living With 1000 Open Source Projects

  • 1. Living with 1000 Open Source Projects Dr Nic Williams, tallest person at Mocra @drnic · http://drnicwilliams.com · http://mocra.com
  • 3. Pacific Ocean Trips RubyConf 2007: 9am Sunday 50% Awake
  • 4. Pacific Ocean Trips RubyConf 2007: 9am Sunday 50% Awake FutureRuby 2009: 10am Sunday 50% Canadian
  • 5. Pacific Ocean Trips RubyConf 2007: 9am Sunday 50% Awake FutureRuby 2009: 10am Sunday 50% Canadian
  • 7. A. Nurture and converse “Do you care?”
  • 8. B. Previously A “Do it yourself”
  • 9. Life as an A-type is awesome…
  • 10. Life as an A-type is awesome… until it is not
  • 11.
  • 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. 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. 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. 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. 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
  • 18. ! Disclaimer My projects aren’t wildly popular
  • 19. 80 60 40 20 0 mid-2007 mid-2008 mid-2009 I just have heaps of them
  • 20. 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
  • 21. OSS projects don’t scale but neither does raising pets nor children
  • 22. A dog trainer having a pet dog vs maintaining many dogs
  • 23. A teacher having a pet child vs maintaining many children
  • 24. An OSS owner having a pet project vs maintaining many projects
  • 25. What to maintain? pet projects and libraries you need each day
  • 26. and abandon the rest http://www.flickr.com/photos/robbyrussell/243693247/
  • 27. Maintenance Goal: Zero Effort
  • 29. Publish project status • Facilitate group therapy • Forward emails to mailing list Aim: Reduce bad karma
  • 33. $ 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
  • 36. 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
  • 37. 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
  • 39. Test frameworks: ............... • Reuse processes: rake • Create tools: newgem • Promote your process: blog Aim: zero process cost
  • 40. 5 mins to run tests 30 mins looking at bug reports Aim: zero defects
  • 41. 5 mins to run tests 0 7.5 15 22.5 30 30 mins looking at bug reports Aim: zero defects
  • 42. $ 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
  • 43. Aim for zero • Don’t use it? Don’t maintain it • Manage expectations • Community self-sufficiency • Zero process cost • Zero defects
  • 44. Use your spare time • Find a hobby • Talk to your spouse • Create more projects
  • 45. Create a new project newgem my_project cd my_project git init git add . git commit -m "initial" github create-from-local
  • 46. Thank you Canada Dr Nic Williams drnicwilliams.com · @drnic