Provides some ideas on how you can get more involved in the open source community. Contains information on contributing to and managing open source projects.
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
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.
38. Thanks
• Buy my book ————->
http://goo.gl/zVe3oP
• Go to my website:
http://digitalsandwich.com
• Slides are posted:
http://www.slideshare.net/mjlivelyjr