Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Participating in Open Source

Avatar for Matthew Matthew
August 06, 2014

Participating in Open Source

Avatar for Matthew

Matthew

August 06, 2014

Other Decks in Technology

Transcript

  1. – Michael Tiemann “When the people are invested with the

    power to control their own destiny, they take an interest.” Open Source is about trust, confidence, and empowerment Transparency Build upon and improve the work of others Free to take ownership of their work
  2. Why is Open Source Better? • Empowerment • Comprehensiveness •

    Quality Others can use your work with confidence. Not the same as freeware. No such thing as complete code (approaches, requirements, bugs) Quality not inherent. More eyes (find bugs, improved standards), More minds.
  3. Revenue Models • Support/consulting • Installables • Stable Releases •

    Open Core Open Core detracts from the Open Source model by reverting to a proprietary lock-in model for important features.
  4. Project Owner ! • “Free” resources • Promote compatibility •

    Licensing • Altruism The work of others is valuable Third parties will extend the reach of your project Open licensing increases adoption Give what you take
  5. Individual Contributor • Learn • Reduce maintenance overhead (upstreaming) •

    Resume building • Altruism Learn • from experienced developers • new technologies • diversity Upstreaming frees you from being a lone maintainer Experience that others can see Give back
  6. Scratch Your Own Itch Important You won’t finish something you

    don’t need Pick something useful to you and approach the problem in a generally useful way
  7. Get to Know the Project • Communication • Coding standards

    • Documentation • Licensing • Ask questions mailing list, wiki, issue tracker, meetings follow the quality standards and idioms of the project. docs, tests, linking docs can reveal the design decisions, shortcomings, and scope licensing, contributor agreements, obligations
  8. Valuable Contributions • Documentation • Visual Design • Localization •

    Packaging • Infrastructure • Code Docs - external, inline, doc generation code, bug reports Logos, stylesheets, templates, etc Translate to your language Make it easier for others to use the project Hosting resources - demo servers, mail/file/collaboration servers Code - features, bugfixes, tests, code reviews
  9. Being a Project Owner • Confidence • Humility • Patience

    • Responsiveness In successful projects, this can be a big responsibility Decide how things should be done. Insist on quality. Listen to others, be open to criticism and suggestions Be patient, take the time to help those who want to help you Stay on top of discussions, contributions, and reviews
  10. Individual Contributor • Attention to detail • Flexibility • Perseverance

    • Humility … especially to project standards. Communicate clearly. Often need to solve problems in a different way Don’t give up, own your contribution Be open to criticism and differing opinions
  11. Learn Git Most projects use git for managing change Experience

    is applicable elsewhere (mostly other SCMs) Maybe learn bzr too, if you’ll be working on Debian-based projects
  12. Github - Documentation Not all projects have a wiki. Also

    look into Github Pages (hosting static content)