SlideShare a Scribd company logo
Being an Open Source
Contributor
Mike Lively
Mike Lively
• PHPUnit Database Extension
• Phake - PHP Mocking
Framework
• Lots of other small OSS
contributions
• Manager of Software
Architecture @ slickdeals.net
Why are you here?
• I contribute already, just curious how others do it
• I don’t contribute yet and want to know how to get
started
• Not sure if I want to contribute ever, but still
interested in how it all works
Why are you here?
• I’m just waiting for your talk to
finish up so I can hear about
PHP 7
Contributing to OSS
• Why contribute to OSS?
• Contribute vs. Create
• How to Contribute
• How to Create
• The cool tools
Why should I Contribute?
• Give back a great idea
• Learn something new
• Get better at what you know
• Improve your resume
Why should I Contribute?
• Phase 1: Start an open source project
• Phase 2: ???
• Phase 3: Profit ($$$)
Contribute or Create?
Create a new project when…
• You have a new idea
• You have a new take on an existing idea
• You have lots of time to spare
Contribute to an existing
project when…
• you are looking to learn something new
• you are looking to improve your resume
• want to be involved in OSS but don’t have any
ideas
• Because you are a nice person
Contributing to Projects
Do it because
How to Contribute to Projects
• Submit Pull Requests, not issues
• Be a team player, follow their style
• Be brave, large popular projects need help too
• Get involved with a community
• Check your ego at the door
Creating an OSS Project
A successful open source project at its core will offer the same
thing most successful businesses offer: value to a community
that to that point has not had that value available.
Defining Project Success
For the purposes of this talk, success is providing a
project to the community that is able to outlast your
own contributions.
How to Create a Successful
Project
• Make your project unique
• License appropriately
• Document Well
• Provide an environment that encourages
community
Make your Project Unique
• A new and novel idea
• Already exists, but outside of a particular
community
• Already exists inside the community but unique
value is provided
Picking a License
Pick the right license
• Dictates who will use your project
• Increasingly important for larger companies
• Provides protection for yourself
Pick the right license
• GPL - A copyleft license. Limits corporate adoption
• MIT - grants free, unrestricted use
• BSD - Similar to MIT + disallows use of your name
What to look for
• Clear rights granted for copy, modification,
distribution, etc.
• Requirements are attached to those rights
• Clear “provided as-is” terms
• Non-endorsement clauses (if desired)
What to look for
Just use a common, well understood
license
http://opensource.org/licenses
CLA
• Contributor License Agreement
• Helps ensure you either have copyright or
granted right
• Highly recommended if you have future plans to
profit from the project
CLA
• Grants the project owner rights to the contribution
• Easiest to just be granted the copyright
• Otherwise get as broad of a range of rights
• To sign over rights, the contributor must be the
owner of the rights
CCLA
• Corporate Contributor License Agreement
• Used to gain authorization from a contributor’s
employer
• Same principles apply
CLA/CCLA
http://oss-watch.ac.uk/resources/cla
Document Well
• Focus documentation
efforts towards your goal
• Adoption?
Document usage
• Contributions?
Document code and
architecture
Document Well
• More than just Manuals
• Articles, Tutorials, and more
• Don’t stop documenting
Document Well
• Keep manuals close to code
• Keep articles, tutorials, blog posts well linked
• Create a site for your project
Document Well
A horrible library with great
documentation will get more use than a
great library with no documentation.
Encourage Community
–Linus Torvalds
“In open source, we feel strongly that to really
do something well, you have to get a lot of
people involved.”
Encourage Community
• You are the community in the beginning
• Write articles, blog posts, tutorials whenever
possible
• Provide guidelines for code contributions
• Get others involved quickly
Encourage Community
• Address issues, pull requests, etc.
• Make people feel appreciated for contributions
• Strengthening the community trumps “integrity” of
the code
–Rasmus Lerdorf
“If you want to build an open source project,
you can't let your ego stand in the way. You
can't rewrite everybody's patches, you can't
second-guess everybody, and you have to
give people equal control.”
Project Success Revisited
For the purposes of this talk, success is providing a
project to the community that is able to outlast your
own contributions.
Encourage Community
• Look for your replacement
• If your community begins forming strong opinions,
you are set.
Tools I use
• Revision Control: https://github.com/
• Release Distribution: https://packagist.org/
• Documentation: https://readthedocs.org/
• Continuous Testing: https://travis-ci.org/
• Code Quality: https://scrutinizer-ci.com/
• Code Quality 2: https://codeclimate.com/
• Dependency Management: https://www.versioneye.com/
Thanks
• Buy my book ————->
http://goo.gl/zVe3oP
• Go to my website:
http://digitalsandwich.com
• Slides are posted:
http://www.slideshare.net/mjlivelyjr

More Related Content

What's hot (18)

PPTX
OSGeo Incubation 2014
Jody Garnett
 
PPTX
Managing a large open source community - OSCON 2016
{code}
 
ODP
But We're Already Open Source! Why Would I Want To Bring My Code To Apache?
gagravarr
 
PDF
WE16 - Navigating the Seas of Open Source Projects
Society of Women Engineers
 
PPTX
Impact of Open Source
Anne-Gaelle Colom
 
PPTX
Treating Open Source as Pro Bono Work
All Things Open
 
PPTX
NISO Webinar: Behave like a Startup: Adapting Your Organization to Rapid Change
National Information Standards Organization (NISO)
 
PPTX
LIBRARIANS AS WEB DEVELOPERS: GAUGING THE BEST TECHNOLOGIES IN ACCESSING INFO...
Philippine Association of Academic/Research Librarians
 
PDF
Osgeo incubation-2014
Jody Garnett
 
PDF
Better Statements with Experience API (xAPI) Profiles
Russell Duhon
 
PDF
Free vs Paid Content
Marc Grabanski
 
PPTX
Blacklight intro - LLI seminar
Chris Awre
 
PPT
Drupal training day by Rachit Gupta
Rachit Gupta
 
PDF
OSS meetups in Japan, at Linuxcon 2013
Hiro Yoshioka
 
PDF
Platform Selection
Wilco van Duinkerken
 
PPT
Rethinking Scala Presented in San Francisco May 7, 2014
Bruce Eckel
 
PPTX
Decentralizing your library
Steve Bahnaman
 
PPTX
Decentralizing your library
NCLA2011
 
OSGeo Incubation 2014
Jody Garnett
 
Managing a large open source community - OSCON 2016
{code}
 
But We're Already Open Source! Why Would I Want To Bring My Code To Apache?
gagravarr
 
WE16 - Navigating the Seas of Open Source Projects
Society of Women Engineers
 
Impact of Open Source
Anne-Gaelle Colom
 
Treating Open Source as Pro Bono Work
All Things Open
 
NISO Webinar: Behave like a Startup: Adapting Your Organization to Rapid Change
National Information Standards Organization (NISO)
 
LIBRARIANS AS WEB DEVELOPERS: GAUGING THE BEST TECHNOLOGIES IN ACCESSING INFO...
Philippine Association of Academic/Research Librarians
 
Osgeo incubation-2014
Jody Garnett
 
Better Statements with Experience API (xAPI) Profiles
Russell Duhon
 
Free vs Paid Content
Marc Grabanski
 
Blacklight intro - LLI seminar
Chris Awre
 
Drupal training day by Rachit Gupta
Rachit Gupta
 
OSS meetups in Japan, at Linuxcon 2013
Hiro Yoshioka
 
Platform Selection
Wilco van Duinkerken
 
Rethinking Scala Presented in San Francisco May 7, 2014
Bruce Eckel
 
Decentralizing your library
Steve Bahnaman
 
Decentralizing your library
NCLA2011
 

Viewers also liked (16)

PDF
Using Sphinx for Search in PHP
Mike Lively
 
PPTX
Silos Are For Farmers, Not IT
Stonebranch, Inc.
 
PPTX
Titan CMS Tips, Tricks and Hacks
Northwoods Software, Inc.
 
PDF
Investing tips-to-grow-wealth
Motif Investing
 
PPSX
All About Telecom Expense Management
TeleManagement Technologies, Inc.
 
PDF
Infographic: Create a change platform
PinipaApp
 
PPTX
Karomi Brand Asset Management
Karomi Technology
 
PDF
Into the Breach-Data Breach Statistics Infographic
Column Technologies
 
PPT
Risk management & compliance with xyea october 2012
Xyea
 
PPTX
DMA - Art of Targeting and Personalization
eClerx
 
PPTX
כנס מדבר יהודה לדורותיו 2005 2015 חלק שני
Omer Koreh
 
PDF
Mobile & IoT in Field Service
XMPRO
 
PPTX
Thirty minutes to share point availability
Neverfail Group
 
PPTX
ATRA Expo Talk 2014 - Future Trends
ProfitBoost
 
PPTX
Better Payroll Days Ahead with Automated, Cloud-Based Time and Attendance
nettime solutions
 
PDF
Metasite Business Solutions booklet
Metasite Business Solutions
 
Using Sphinx for Search in PHP
Mike Lively
 
Silos Are For Farmers, Not IT
Stonebranch, Inc.
 
Titan CMS Tips, Tricks and Hacks
Northwoods Software, Inc.
 
Investing tips-to-grow-wealth
Motif Investing
 
All About Telecom Expense Management
TeleManagement Technologies, Inc.
 
Infographic: Create a change platform
PinipaApp
 
Karomi Brand Asset Management
Karomi Technology
 
Into the Breach-Data Breach Statistics Infographic
Column Technologies
 
Risk management & compliance with xyea october 2012
Xyea
 
DMA - Art of Targeting and Personalization
eClerx
 
כנס מדבר יהודה לדורותיו 2005 2015 חלק שני
Omer Koreh
 
Mobile & IoT in Field Service
XMPRO
 
Thirty minutes to share point availability
Neverfail Group
 
ATRA Expo Talk 2014 - Future Trends
ProfitBoost
 
Better Payroll Days Ahead with Automated, Cloud-Based Time and Attendance
nettime solutions
 
Metasite Business Solutions booklet
Metasite Business Solutions
 
Ad

Similar to Contributing to Open Source Software (20)

PDF
Open source-and-you-gr8conf-us-2013
Peter Ledbrook
 
PDF
Hitchhikers Guide to Participating in Open Source - Long Version
Elena Williams
 
PPTX
Running a Successful Open Source Project
Rob Reynolds
 
PDF
What every successful open source project needs
Steven Francia
 
PDF
Markings of a Healthy OSS Project
Clement Ho
 
PDF
The business behind open source
ConFoo
 
ODP
How to start an Open Source Project
Priyank Kapadia
 
PDF
Contributing to Open Source
Daniel Stenberg
 
KEY
Open Source Compliance at Twitter
Chris Aniszczyk
 
PPTX
Open Source Project Management
Semen Arslan
 
PDF
How to Run a Successful Open Source Java EE Project
philipdurbin
 
PDF
Succeeding with FOSS!
M A Hossain Tonu
 
PPT
Understanding the Meaningful Use of Open Source Software
Chris Mattmann
 
KEY
Open Source From The Trenches: How to Get Involved with Open Source and be Su...
Chris Aniszczyk
 
PPTX
Open source and then some: An Introduction
Akash Tandon
 
PDF
Open Source: What is It?
DuraSpace
 
PDF
Leading An Open Source Project As A Startup
Mailjet
 
PDF
Leading an open source project as a startup
Nicolas Garnier
 
PDF
Michael Widenius
CodeFest
 
PPT
Open Source & Open Development
Sander van der Waal
 
Open source-and-you-gr8conf-us-2013
Peter Ledbrook
 
Hitchhikers Guide to Participating in Open Source - Long Version
Elena Williams
 
Running a Successful Open Source Project
Rob Reynolds
 
What every successful open source project needs
Steven Francia
 
Markings of a Healthy OSS Project
Clement Ho
 
The business behind open source
ConFoo
 
How to start an Open Source Project
Priyank Kapadia
 
Contributing to Open Source
Daniel Stenberg
 
Open Source Compliance at Twitter
Chris Aniszczyk
 
Open Source Project Management
Semen Arslan
 
How to Run a Successful Open Source Java EE Project
philipdurbin
 
Succeeding with FOSS!
M A Hossain Tonu
 
Understanding the Meaningful Use of Open Source Software
Chris Mattmann
 
Open Source From The Trenches: How to Get Involved with Open Source and be Su...
Chris Aniszczyk
 
Open source and then some: An Introduction
Akash Tandon
 
Open Source: What is It?
DuraSpace
 
Leading An Open Source Project As A Startup
Mailjet
 
Leading an open source project as a startup
Nicolas Garnier
 
Michael Widenius
CodeFest
 
Open Source & Open Development
Sander van der Waal
 
Ad

Recently uploaded (20)

PPTX
Migrating Millions of Users with Debezium, Apache Kafka, and an Acyclic Synch...
MD Sayem Ahmed
 
PPTX
Human Resources Information System (HRIS)
Amity University, Patna
 
PDF
Revenue streams of the Wazirx clone script.pdf
aaronjeffray
 
PDF
Executive Business Intelligence Dashboards
vandeslie24
 
PDF
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pdf
Varsha Nayak
 
PDF
Digger Solo: Semantic search and maps for your local files
seanpedersen96
 
PDF
vMix Pro 28.0.0.42 Download vMix Registration key Bundle
kulindacore
 
PPTX
Writing Better Code - Helping Developers make Decisions.pptx
Lorraine Steyn
 
PDF
Streamline Contractor Lifecycle- TECH EHS Solution
TECH EHS Solution
 
PPTX
Tally_Basic_Operations_Presentation.pptx
AditiBansal54083
 
PDF
Beyond Binaries: Understanding Diversity and Allyship in a Global Workplace -...
Imma Valls Bernaus
 
PDF
HiHelloHR – Simplify HR Operations for Modern Workplaces
HiHelloHR
 
PDF
Unlock Efficiency with Insurance Policy Administration Systems
Insurance Tech Services
 
PDF
MiniTool Partition Wizard 12.8 Crack License Key LATEST
hashhshs786
 
PPT
MergeSortfbsjbjsfk sdfik k
RafishaikIT02044
 
PPTX
Java Native Memory Leaks: The Hidden Villain Behind JVM Performance Issues
Tier1 app
 
PPTX
Tally software_Introduction_Presentation
AditiBansal54083
 
PDF
Odoo CRM vs Zoho CRM: Honest Comparison 2025
Odiware Technologies Private Limited
 
PDF
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
PPTX
An Introduction to ZAP by Checkmarx - Official Version
Simon Bennetts
 
Migrating Millions of Users with Debezium, Apache Kafka, and an Acyclic Synch...
MD Sayem Ahmed
 
Human Resources Information System (HRIS)
Amity University, Patna
 
Revenue streams of the Wazirx clone script.pdf
aaronjeffray
 
Executive Business Intelligence Dashboards
vandeslie24
 
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pdf
Varsha Nayak
 
Digger Solo: Semantic search and maps for your local files
seanpedersen96
 
vMix Pro 28.0.0.42 Download vMix Registration key Bundle
kulindacore
 
Writing Better Code - Helping Developers make Decisions.pptx
Lorraine Steyn
 
Streamline Contractor Lifecycle- TECH EHS Solution
TECH EHS Solution
 
Tally_Basic_Operations_Presentation.pptx
AditiBansal54083
 
Beyond Binaries: Understanding Diversity and Allyship in a Global Workplace -...
Imma Valls Bernaus
 
HiHelloHR – Simplify HR Operations for Modern Workplaces
HiHelloHR
 
Unlock Efficiency with Insurance Policy Administration Systems
Insurance Tech Services
 
MiniTool Partition Wizard 12.8 Crack License Key LATEST
hashhshs786
 
MergeSortfbsjbjsfk sdfik k
RafishaikIT02044
 
Java Native Memory Leaks: The Hidden Villain Behind JVM Performance Issues
Tier1 app
 
Tally software_Introduction_Presentation
AditiBansal54083
 
Odoo CRM vs Zoho CRM: Honest Comparison 2025
Odiware Technologies Private Limited
 
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
An Introduction to ZAP by Checkmarx - Official Version
Simon Bennetts
 

Contributing to Open Source Software

  • 1. Being an Open Source Contributor Mike Lively
  • 2. Mike Lively • PHPUnit Database Extension • Phake - PHP Mocking Framework • Lots of other small OSS contributions • Manager of Software Architecture @ slickdeals.net
  • 3. Why are you here? • I contribute already, just curious how others do it • I don’t contribute yet and want to know how to get started • Not sure if I want to contribute ever, but still interested in how it all works
  • 4. Why are you here? • I’m just waiting for your talk to finish up so I can hear about PHP 7
  • 5. Contributing to OSS • Why contribute to OSS? • Contribute vs. Create • How to Contribute • How to Create • The cool tools
  • 6. Why should I Contribute? • Give back a great idea • Learn something new • Get better at what you know • Improve your resume
  • 7. Why should I Contribute? • Phase 1: Start an open source project • Phase 2: ??? • Phase 3: Profit ($$$)
  • 9. Create a new project when… • You have a new idea • You have a new take on an existing idea • You have lots of time to spare
  • 10. Contribute to an existing project when… • you are looking to learn something new • you are looking to improve your resume • want to be involved in OSS but don’t have any ideas • Because you are a nice person
  • 12. How to Contribute to Projects • Submit Pull Requests, not issues • Be a team player, follow their style • Be brave, large popular projects need help too • Get involved with a community • Check your ego at the door
  • 13. Creating an OSS Project A successful open source project at its core will offer the same thing most successful businesses offer: value to a community that to that point has not had that value available.
  • 14. Defining Project Success For the purposes of this talk, success is providing a project to the community that is able to outlast your own contributions.
  • 15. How to Create a Successful Project • Make your project unique • License appropriately • Document Well • Provide an environment that encourages community
  • 16. Make your Project Unique • A new and novel idea • Already exists, but outside of a particular community • Already exists inside the community but unique value is provided
  • 18. Pick the right license • Dictates who will use your project • Increasingly important for larger companies • Provides protection for yourself
  • 19. Pick the right license • GPL - A copyleft license. Limits corporate adoption • MIT - grants free, unrestricted use • BSD - Similar to MIT + disallows use of your name
  • 20. What to look for • Clear rights granted for copy, modification, distribution, etc. • Requirements are attached to those rights • Clear “provided as-is” terms • Non-endorsement clauses (if desired)
  • 21. What to look for Just use a common, well understood license http://opensource.org/licenses
  • 22. CLA • Contributor License Agreement • Helps ensure you either have copyright or granted right • Highly recommended if you have future plans to profit from the project
  • 23. CLA • Grants the project owner rights to the contribution • Easiest to just be granted the copyright • Otherwise get as broad of a range of rights • To sign over rights, the contributor must be the owner of the rights
  • 24. CCLA • Corporate Contributor License Agreement • Used to gain authorization from a contributor’s employer • Same principles apply
  • 26. Document Well • Focus documentation efforts towards your goal • Adoption? Document usage • Contributions? Document code and architecture
  • 27. Document Well • More than just Manuals • Articles, Tutorials, and more • Don’t stop documenting
  • 28. Document Well • Keep manuals close to code • Keep articles, tutorials, blog posts well linked • Create a site for your project
  • 29. Document Well A horrible library with great documentation will get more use than a great library with no documentation.
  • 31. –Linus Torvalds “In open source, we feel strongly that to really do something well, you have to get a lot of people involved.”
  • 32. Encourage Community • You are the community in the beginning • Write articles, blog posts, tutorials whenever possible • Provide guidelines for code contributions • Get others involved quickly
  • 33. Encourage Community • Address issues, pull requests, etc. • Make people feel appreciated for contributions • Strengthening the community trumps “integrity” of the code
  • 34. –Rasmus Lerdorf “If you want to build an open source project, you can't let your ego stand in the way. You can't rewrite everybody's patches, you can't second-guess everybody, and you have to give people equal control.”
  • 35. Project Success Revisited For the purposes of this talk, success is providing a project to the community that is able to outlast your own contributions.
  • 36. Encourage Community • Look for your replacement • If your community begins forming strong opinions, you are set.
  • 37. Tools I use • Revision Control: https://github.com/ • Release Distribution: https://packagist.org/ • Documentation: https://readthedocs.org/ • Continuous Testing: https://travis-ci.org/ • Code Quality: https://scrutinizer-ci.com/ • Code Quality 2: https://codeclimate.com/ • Dependency Management: https://www.versioneye.com/
  • 38. Thanks • Buy my book ————-> http://goo.gl/zVe3oP • Go to my website: http://digitalsandwich.com • Slides are posted: http://www.slideshare.net/mjlivelyjr