KEMBAR78
Running a Successful Open Source Project | PPTX
Running a Successful
Open Source Project
Rob Reynolds
Puppet, Inc
Rob Reynolds
• Senior Software Engineer on the Windows Team
at Puppet
• Creator of Chocolatey
• Enjoys long walks on the beach and designing
solutions that make hard things easy
• Co-wrote infrastructure framework
known as the Chuck Norris Framework
• Over 10 years experience in
infrastructure automation
• Obsesses over user experience
Open Source Software Experience
• Work on Puppet
• Work on Chocolatey
• Work on RoundhousE and other Chuck Norris Framework tools
• Contributed to numerous OSS projects
Topics
• Success?
• Passion
• Go It Alone
• Decision Structure
• Legal
• Versioning / Release
Structure
• Time Management
• Documentation
• Contributors / Committers
• Learn to Take Critical
Feedback
• Collaboration
• The Long Haul
• Finding New Owners
• Final Thoughts
So How Do You Run A Successful OSS
Project?
Define Success
• What does it mean for you when working in open source?
Defining Success for Rob
• Solving a Problem
• Building a Community
• User Experience
Find a Passion
• You must be passionate about your project
• No one else will be for you
• You must be a user of your project
Go It Alone
• “I know, I’ll open source this and get help” <- The wrong idea
Decision Structure
• Benevolent Dictator?
• Small Group?
• By Vote?
• Design By Committee?
Decision Structure
• Recommendation - Benevolent Dictator
• “Open Source is not a democracy.”
• Standards Committees
Legal
• Pick a Friendly Open Source License -
https://opensource.org/licenses
• Recommend Apache 2 or MIT
• GPL if you want CopyLeft
• Contributor License Agreement
• http://harmonyagreements.org/
Versioning / Release Structure
• Semantic Versioning - https://semver.org
• Where will your releases be?
• Will you offer multiple versions at a time?
• Do not force someone to upgrade
• ChangeLog - What breaks, how to mitigate
Time Management
• Set some time aside
• “If you are not good at time management now, learn to be.”
• Email Filters
• Still many messages per day
• Find Community Members To Help
• Documentation
Documentation
• Docs are usually most hated thing to do
• Very important
• “An Ounce of Documentation Saves A Hundred Requests”
Marketing
• You must tell folks about what you are doing
• Blogging, showing it to prominent folks for them to blog
• Put it on package managers for discovery
• Build info/demo into talks at conferences
• Develop an elevator pitch
• Does it make sense to non-technical folks?
Contributors / Committers
• Set expectations
• Document processes
• Document Code Design
• Provides direction for folks
Learn to Take Critical Feedback
• Project is Your Baby
• “Not everyone will think your baby is
beautiful.”
• Most feedback is helpful
• Some negative feedback is
helpful once you get to issue
• Some folks are just trolls
• Know the difference between abuse and
feedback
You Are Going To Break Stuff
How Not To Collaborate
How Not To Collaborate
• http://lkml.iu.edu/hypermail/linux/kernel/1510.3/02866.html
How Not To Collaborate
• https://lkml.org/lkml/2012/12/23/75
How Not To Collaborate
• https://github.com/ParsePlatform/parse-server/issues/1050
Collaboration - The Art of Being Nice
• Be Humble
• Be Friendly
• Understand Context Prior to Judgment
• Learn to Say No - https://blog.jessfraz.com/post/the-art-of-
closing/
Collaboration - Fixing Issues
It’s Not All Sunshine and Roses
• https://sethvargo.com/leaving-chef/
• https://plus.google.com/+LennartPoetteringTheOneAndOnly/pos
ts/J2TZrTvu7vd
Collaboration Mediums
• Mailing List
• Stack Overflow
• Chat - Gitter, IRC and/or Slack
The Long Haul
• Does this project have costs?
• How do you plan to pay for those costs?
• Your time and effort
• Monetize? Sponsorship? Or Both?
Finding New Owners
• Life Events
• New Projects
• Passions Shift
• No Longer a User
Finding New Owners
• No Owners
• Letting the Project End
• Backing Off - Is the community strong enough?
Getting Started - Contributing
• When In Rome
• Ask
• Documentation
• Smaller Things - Get
Familiar
• http://up-for-grabs.net/
Final Thoughts
• Open Source is Rewarding
• Notoriety
• Opens doors for new careers
• “It’s amazing to hear when folks
find what you have created
useful.”

Running a Successful Open Source Project

  • 1.
    Running a Successful OpenSource Project Rob Reynolds Puppet, Inc
  • 3.
    Rob Reynolds • SeniorSoftware Engineer on the Windows Team at Puppet • Creator of Chocolatey • Enjoys long walks on the beach and designing solutions that make hard things easy • Co-wrote infrastructure framework known as the Chuck Norris Framework • Over 10 years experience in infrastructure automation • Obsesses over user experience
  • 4.
    Open Source SoftwareExperience • Work on Puppet • Work on Chocolatey • Work on RoundhousE and other Chuck Norris Framework tools • Contributed to numerous OSS projects
  • 5.
    Topics • Success? • Passion •Go It Alone • Decision Structure • Legal • Versioning / Release Structure • Time Management • Documentation • Contributors / Committers • Learn to Take Critical Feedback • Collaboration • The Long Haul • Finding New Owners • Final Thoughts
  • 6.
    So How DoYou Run A Successful OSS Project?
  • 8.
    Define Success • Whatdoes it mean for you when working in open source?
  • 9.
    Defining Success forRob • Solving a Problem • Building a Community • User Experience
  • 10.
    Find a Passion •You must be passionate about your project • No one else will be for you • You must be a user of your project
  • 11.
    Go It Alone •“I know, I’ll open source this and get help” <- The wrong idea
  • 12.
    Decision Structure • BenevolentDictator? • Small Group? • By Vote? • Design By Committee?
  • 14.
    Decision Structure • Recommendation- Benevolent Dictator • “Open Source is not a democracy.” • Standards Committees
  • 15.
    Legal • Pick aFriendly Open Source License - https://opensource.org/licenses • Recommend Apache 2 or MIT • GPL if you want CopyLeft • Contributor License Agreement • http://harmonyagreements.org/
  • 16.
    Versioning / ReleaseStructure • Semantic Versioning - https://semver.org • Where will your releases be? • Will you offer multiple versions at a time? • Do not force someone to upgrade • ChangeLog - What breaks, how to mitigate
  • 17.
    Time Management • Setsome time aside • “If you are not good at time management now, learn to be.” • Email Filters • Still many messages per day • Find Community Members To Help • Documentation
  • 18.
    Documentation • Docs areusually most hated thing to do • Very important • “An Ounce of Documentation Saves A Hundred Requests”
  • 19.
    Marketing • You musttell folks about what you are doing • Blogging, showing it to prominent folks for them to blog • Put it on package managers for discovery • Build info/demo into talks at conferences • Develop an elevator pitch • Does it make sense to non-technical folks?
  • 20.
    Contributors / Committers •Set expectations • Document processes • Document Code Design • Provides direction for folks
  • 21.
    Learn to TakeCritical Feedback • Project is Your Baby • “Not everyone will think your baby is beautiful.” • Most feedback is helpful • Some negative feedback is helpful once you get to issue • Some folks are just trolls • Know the difference between abuse and feedback
  • 22.
    You Are GoingTo Break Stuff
  • 23.
    How Not ToCollaborate
  • 24.
    How Not ToCollaborate • http://lkml.iu.edu/hypermail/linux/kernel/1510.3/02866.html
  • 25.
    How Not ToCollaborate • https://lkml.org/lkml/2012/12/23/75
  • 26.
    How Not ToCollaborate • https://github.com/ParsePlatform/parse-server/issues/1050
  • 28.
    Collaboration - TheArt of Being Nice • Be Humble • Be Friendly • Understand Context Prior to Judgment • Learn to Say No - https://blog.jessfraz.com/post/the-art-of- closing/
  • 29.
  • 30.
    It’s Not AllSunshine and Roses • https://sethvargo.com/leaving-chef/ • https://plus.google.com/+LennartPoetteringTheOneAndOnly/pos ts/J2TZrTvu7vd
  • 31.
    Collaboration Mediums • MailingList • Stack Overflow • Chat - Gitter, IRC and/or Slack
  • 32.
    The Long Haul •Does this project have costs? • How do you plan to pay for those costs? • Your time and effort • Monetize? Sponsorship? Or Both?
  • 33.
    Finding New Owners •Life Events • New Projects • Passions Shift • No Longer a User
  • 34.
    Finding New Owners •No Owners • Letting the Project End • Backing Off - Is the community strong enough?
  • 35.
    Getting Started -Contributing • When In Rome • Ask • Documentation • Smaller Things - Get Familiar • http://up-for-grabs.net/
  • 36.
    Final Thoughts • OpenSource is Rewarding • Notoriety • Opens doors for new careers • “It’s amazing to hear when folks find what you have created useful.”