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

PDF
Innovation Driven By Open Source
PPTX
The Apache Way - Dataworks Summit 2017
PPTX
(Things to think about) Before you pick a wiki
PDF
The Apache Way
PPTX
Connecting Intelligent Content with Micropublishing and Beyond
PDF
Introduction to Drupal
PDF
Open as a Competitive Advantage
PDF
Challenges to the Open Source Model Today
Innovation Driven By Open Source
The Apache Way - Dataworks Summit 2017
(Things to think about) Before you pick a wiki
The Apache Way
Connecting Intelligent Content with Micropublishing and Beyond
Introduction to Drupal
Open as a Competitive Advantage
Challenges to the Open Source Model Today

What's hot (18)

PPTX
OSGeo Incubation 2014
PPTX
Managing a large open source community - OSCON 2016
ODP
But We're Already Open Source! Why Would I Want To Bring My Code To Apache?
PDF
WE16 - Navigating the Seas of Open Source Projects
PPTX
Impact of Open Source
PPTX
Treating Open Source as Pro Bono Work
PPTX
NISO Webinar: Behave like a Startup: Adapting Your Organization to Rapid Change
PPTX
LIBRARIANS AS WEB DEVELOPERS: GAUGING THE BEST TECHNOLOGIES IN ACCESSING INFO...
PDF
Osgeo incubation-2014
PDF
Better Statements with Experience API (xAPI) Profiles
PDF
Free vs Paid Content
PPTX
Blacklight intro - LLI seminar
PPT
Drupal training day by Rachit Gupta
PDF
OSS meetups in Japan, at Linuxcon 2013
PDF
Platform Selection
PPT
Rethinking Scala Presented in San Francisco May 7, 2014
PPTX
Decentralizing your library
PPTX
Decentralizing your library
OSGeo Incubation 2014
Managing a large open source community - OSCON 2016
But We're Already Open Source! Why Would I Want To Bring My Code To Apache?
WE16 - Navigating the Seas of Open Source Projects
Impact of Open Source
Treating Open Source as Pro Bono Work
NISO Webinar: Behave like a Startup: Adapting Your Organization to Rapid Change
LIBRARIANS AS WEB DEVELOPERS: GAUGING THE BEST TECHNOLOGIES IN ACCESSING INFO...
Osgeo incubation-2014
Better Statements with Experience API (xAPI) Profiles
Free vs Paid Content
Blacklight intro - LLI seminar
Drupal training day by Rachit Gupta
OSS meetups in Japan, at Linuxcon 2013
Platform Selection
Rethinking Scala Presented in San Francisco May 7, 2014
Decentralizing your library
Decentralizing your library
Ad

Viewers also liked (16)

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

Similar to Contributing to Open Source Software (20)

PDF
What every successful open source project needs
PDF
Créer une communauté open source: pourquoi ? comment ?
PDF
The Apache Way: A Proven Way Toward Success
KEY
The business behind open source
PPTX
Guide to open source
PDF
The Open Source Way - @JBCNConf Closing Keynote 2016
PDF
The business behind open source
PPTX
How to get started in Open Source!
PPTX
contributing to open source in just about any skill
PDF
Apache: Code, Community and Open Source
PPTX
Role of Community in Technical Success
PPTX
gdg_workshop 1 on web development and github
PDF
Contributing to Open Source
PPT
Low and No Cost ICT tools
PDF
Communities for code - What can engineering leaders learn from Open Source co...
PPTX
Building a community - BuildStuff Lithuania 2014
PPTX
Running a Successful Open Source Project
PDF
But we're already open source! Why would I want to bring my code to Apache?
PDF
The Apache Way
What every successful open source project needs
Créer une communauté open source: pourquoi ? comment ?
The Apache Way: A Proven Way Toward Success
The business behind open source
Guide to open source
The Open Source Way - @JBCNConf Closing Keynote 2016
The business behind open source
How to get started in Open Source!
contributing to open source in just about any skill
Apache: Code, Community and Open Source
Role of Community in Technical Success
gdg_workshop 1 on web development and github
Contributing to Open Source
Low and No Cost ICT tools
Communities for code - What can engineering leaders learn from Open Source co...
Building a community - BuildStuff Lithuania 2014
Running a Successful Open Source Project
But we're already open source! Why would I want to bring my code to Apache?
The Apache Way

Recently uploaded (20)

PDF
AI in Product Development-omnex systems
PDF
System and Network Administration Chapter 2
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PPTX
L1 - Introduction to python Backend.pptx
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
System and Network Administraation Chapter 3
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
top salesforce developer skills in 2025.pdf
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PPTX
Odoo POS Development Services by CandidRoot Solutions
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
Understanding Forklifts - TECH EHS Solution
PDF
How Creative Agencies Leverage Project Management Software.pdf
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
AI in Product Development-omnex systems
System and Network Administration Chapter 2
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
L1 - Introduction to python Backend.pptx
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Adobe Illustrator 28.6 Crack My Vision of Vector Design
System and Network Administraation Chapter 3
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
top salesforce developer skills in 2025.pdf
VVF-Customer-Presentation2025-Ver1.9.pptx
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
Navsoft: AI-Powered Business Solutions & Custom Software Development
Odoo POS Development Services by CandidRoot Solutions
Operating system designcfffgfgggggggvggggggggg
Softaken Excel to vCard Converter Software.pdf
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Understanding Forklifts - TECH EHS Solution
How Creative Agencies Leverage Project Management Software.pdf
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus

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