Upload
code-by-dell-emc
View
234
Download
1
Embed Size (px)
Citation preview
1© Copyright 2016 EMC Corporation. All rights reserved. 1© Copyright 2016 EMC Corporation. All rights reserved.
INTIMIDATE ME NOT: HOW TO CONTRIBUTE TO LARGE OPEN SOURCE PROJECTS
VLADIMIR VIVIENDeveloper Advocate, EMC {code}
2© Copyright 2016 EMC Corporation. All rights reserved.
Developer Advocate | EMC {code}
Programmer in Go, JavaAuthor and OSS contributor
{github | twitter | medium}/@vladimirvivien
VLADIMIR VIVIEN
3© Copyright 2016 EMC Corporation. All rights reserved.
• Why Open Source• What is a contribution?• Ways to contribute• Why Contribute
AGENDA
4© Copyright 2016 EMC Corporation. All rights reserved. 4© Copyright 2016 EMC Corporation. All rights reserved.
WHY OPEN SOURCETHE CASE FOR SUPPORTING OPEN SOURCE PROJECTS
5© Copyright 2016 EMC Corporation. All rights reserved.
WHO IS USING OPEN SOURCE (OSS) TODAY?
6© Copyright 2016 EMC Corporation. All rights reserved.
78% OF COMPANIESRUN ON OPEN SOURCE
LESS THAN 3% DON’T USE OSS IN ANY WAY
2015 North Bridge & Black Duck Future of Open Source Study
OVER 66%CONSIDER OSS OPTIONS BEFORE
PROPRIETARY SOFTWARE ALTERNATIVES
7© Copyright 2016 EMC Corporation. All rights reserved.
• Data center computing• Virtualized/containerized computing• Desktop computing• Mobile computing• Computing tools• Productivity tools• Data and analytics tools
FABRIC OF MODERN COMPUTING
8© Copyright 2016 EMC Corporation. All rights reserved. 8© Copyright 2016 EMC Corporation. All rights reserved.
Open Source Everywhere
9© Copyright 2016 EMC Corporation. All rights reserved.
• Personal• Enterprise• Government• Military• Science• Academia• Manufacturing
PERVASIVE IN ALL SECTORS
10© Copyright 2016 EMC Corporation. All rights reserved.
• Low barrier of entry (free)• Community driven (many eyeballs on code)• Quality projects• Drive technological innovations• Preferred approach to computing• Allows speed to market• Choices and vendor lock-in averse
ADVANTAGES OPEN SOURCE
11© Copyright 2016 EMC Corporation. All rights reserved. 11© Copyright 2016 EMC Corporation. All rights reserved.
Sounds great!
What’s the problem?
12© Copyright 2016 EMC Corporation. All rights reserved.
• Survives on community participation– Adopters– Champions– Code writers– Maintainers– Document writers– Bug reporters
• Thrives on diversity (backgrounds, opinions, skills)• Requires some level of participation
OPEN SOURCE IS A COMMUNITY EFFORT
13© Copyright 2016 EMC Corporation. All rights reserved.
• Intimidating culture• Everyone is a rock star (or ninja, black belt, etc)• Thousands to millions lines of code• Little to no guidance sometimes• Talent and ego clashes• Consume precious free time
CONTRIBUTING CAN BE SCARY
14© Copyright 2016 EMC Corporation. All rights reserved. 14© Copyright 2016 EMC Corporation. All rights reserved.
No worries
This presentation is all about getting involved in open source.
15© Copyright 2016 EMC Corporation. All rights reserved. 15© Copyright 2016 EMC Corporation. All rights reserved.
WHAT IS A CONTRIBUTION?
16© Copyright 2016 EMC Corporation. All rights reserved.
• Most projects have zero in monetary budgets• Projects welcome any form of constructive help• Most rely on benevolence of volunteers• As we will see, contributions goes way beyond just
submitting code
NOT JUST WRITING CODE
17© Copyright 2016 EMC Corporation. All rights reserved.
• A contribution is any activity that helps with the success of the project– Promotion – Adoption and usage– Feedback / Bug reporting– Documentation– Coding– Project Maintenance– Monetary / Sponsorship
WHAT IS A CONTRIBUTION ?
18© Copyright 2016 EMC Corporation. All rights reserved. 18© Copyright 2016 EMC Corporation. All rights reserved.
PROMOTE THE PROJECT
19© Copyright 2016 EMC Corporation. All rights reserved.
• Newer/smaller projects have no marketing budget• Projects rely heavily on users to spread the word• Promotion is a great way to contribute to a project• Let the world know about your excitement and
support of your favorite open source project(s)
PROMOTING AN OPEN SOURCE PROJECT
20© Copyright 2016 EMC Corporation. All rights reserved.
• Tell your manager and fellow peers• Do internal presentations• Convince your architect it is a good project• Create POC’s internally
PROMOTING AT YOUR COMPANY
21© Copyright 2016 EMC Corporation. All rights reserved.
• Present at your local user group events• Organize a Meetup around the technology• Volunteer to help others adopting the project
PROMOTE IN THE COMMUNITY
22© Copyright 2016 EMC Corporation. All rights reserved.
• Write a blog – Praise– criticize (constructively)
• A big one: star on GitHub!• Post on your favorite social networks• Answer questions on online forums, chat rooms
PROMOTING ON THE NET
23© Copyright 2016 EMC Corporation. All rights reserved. 23© Copyright 2016 EMC Corporation. All rights reserved.
ADOPT AND USE OPEN SOURCE
24© Copyright 2016 EMC Corporation. All rights reserved.
• Majority of projects have no sponsors or sales team• Projects rely on organic adoption• Adoption fosters mindshare• Mindshare, in turn, helps promote projects
USE OF OPEN SOURCE PROJECTS
25© Copyright 2016 EMC Corporation. All rights reserved.
• Put org logo on a “Power-by” page (if possible)• Let others know you use the project in your org• Provide testimonials to project maintainers• Help others in your industry adopt the project• Ask questions on mailing-lists• Share experience about project (blog or otherwise)
ADOPTING AND USING YOUR FAVORITE PROJECT
26© Copyright 2016 EMC Corporation. All rights reserved. 26© Copyright 2016 EMC Corporation. All rights reserved.
PROVIDE FEEDBACK AND FILE ISSUES
27© Copyright 2016 EMC Corporation. All rights reserved.
• There is no QA department for most projects– The community is the QA department
• Projects rely on feedback and bug reports• Feedback provides valuable metrics• Bug reports help identify broken code / features• Usage and adoption of project help here
QUALITY DEPENDS ON FEEDBACK
28© Copyright 2016 EMC Corporation. All rights reserved.
• Once you adopt project, provide feedback• Post praises on Twitter (always welcome)• Post questions, comments, critiques
– forums– mailing lists – Slack, IRC
• Be constructive• Be patient and kind
INFLUENCE PROJECT WITH FEEDBACK
29© Copyright 2016 EMC Corporation. All rights reserved.
• Most common form of feedback• Primarily to report broken code/features
– Other types (questions, feature request, proposal, etc)– Use an issue tracking system (hopefully)– Structured– Assignable – Traceable– Measurable (pulse of project)
• Help take pulse of projects
FILE AN ISSUE
30© Copyright 2016 EMC Corporation. All rights reserved.
• Tests are valuable feedback– Test early version of software– Test new features– Test reported bugs from others
• File an issue to report bug• Expect pushback sometimes, but be
– Constructive (follow filing standards)– Patient and kind (your issue may get ignored a while)– Persistent (if issue is critical, it can help others)
• Remember this is mostly volunteering work– Above all be kind
BE A TESTER
31© Copyright 2016 EMC Corporation. All rights reserved.
• Large projects can have hundreds of active issues• Review and properly
– Validate issue (dup, invalid, etc)– Tag issues– Categorize issue– Initial assignment– Ensure issue follows proper doc standard– Assure consistency
• Triage helps project maintenance
HELP WITH TRIAGE
32© Copyright 2016 EMC Corporation. All rights reserved. 32© Copyright 2016 EMC Corporation. All rights reserved.
DOCUMENT
33© Copyright 2016 EMC Corporation. All rights reserved.
• Successful projects are usually well-documented• Good docs make new users feel welcome
– Helps with getting started– Anticipate readers questions– Helps users adopt project
• Writing good docs is hard– Programmers are usually not good tech writers– They are busy building the product
• Doc neglected, last to be updated
DOCUMENTATION HELPS ADOPTION
34© Copyright 2016 EMC Corporation. All rights reserved.
• Start with typos• Go through “Getting started” sections
– Follow directions for clarity, consistency– Help with language and clear writing
• Contribute– Project documentation– Tutorials – Design and architecture
DOCUMENT YOUR FAVORITE PROJECT
35© Copyright 2016 EMC Corporation. All rights reserved.
• Write blogs• Develop tutorials• Write missing manuals• Help explain a hard concepts• Contribute your write-ups back to project
DOCUMENT ON YOUR OWN
36© Copyright 2016 EMC Corporation. All rights reserved. 36© Copyright 2016 EMC Corporation. All rights reserved.
CONTRIBUTE CODE
37© Copyright 2016 EMC Corporation. All rights reserved.
• Code is crucial part of the project• Active codebase means
– Code is maintained and fresh – Code is not rotting over time
• A sign of interest and participation• Attract new adopters and contributors• Features are being added • Issues are not neglected
KEEP CODE FRESH AND RELEVANT
38© Copyright 2016 EMC Corporation. All rights reserved.
• Ability to code – Know or familiar with the language of the project– Have adequate skills to get started– Great opportunity to sharpen skills
• Rock star status is usually not a requirement• Know/understand SCM tools
– Git, Mercurial, SVN, etc• Familiarize with project workflow
– Fork, branches, tags, code reviews
CODE CONTRIBUTION REQUIREMENTS
39© Copyright 2016 EMC Corporation. All rights reserved.
• Look for issues tagged ‘Low Hanging Fruit’– Code documentation & comments– Fixing typos– Small UI or CLI changes– Minor bug fix– Add minor feature– Etc
• Great way to learn about project code• Low entry point to code
– Helps familiarity with code– Familiarity with project flow
CODE LOW HANGING FRUITS
40© Copyright 2016 EMC Corporation. All rights reserved.
• Help clean backlog of bugs!• Validate reported bugs
– Replicate bug, close or re-route if necessary– Clarify issue ticket with better documentation
• Fix buggy code– Start with lingering older issues– Fix and close non-critical bugs (low hanging fruits)– Great way to understand codebase– Gain valuable insight into project
FIX BUGS, BUGS, BUGS!
41© Copyright 2016 EMC Corporation. All rights reserved.
• Implement a planned feature– May require advanced knowledge of project
• If project is extensible– Implement a plugin– Implement an interface to an API
• Improve existing features– Propose improvement– Submit code
CODE NEW OR IMPROVE FEATURES
42© Copyright 2016 EMC Corporation. All rights reserved.
• Expect a rigorous process to get code accepted– Not a quick– The larger the project, the slower– Large projects have more steps– Again, patience reigns
• Follow project’s workflow (pull requests, patch, etc)• Expect a code review and suggestions
– Don’t take it personal– Code may get rejected until it meets certain criteria– Opportunity learn and get better
SUBMITTING CODE CHANGES
43© Copyright 2016 EMC Corporation. All rights reserved. 43© Copyright 2016 EMC Corporation. All rights reserved.
CONTRIBUTE MONETARILY
44© Copyright 2016 EMC Corporation. All rights reserved.
• Project may accept monetary donations– If it’s valuable to your organization, contribute– If it’s valuable to you personally, contribute
• Sponsor a conference about the project• Buy commercial support license if offered• Hire open source project developers• Contribute with paid employee time
SUPPORT YOUR FAVORITE PROJECT
45© Copyright 2016 EMC Corporation. All rights reserved. 45© Copyright 2016 EMC Corporation. All rights reserved.
WHY CONTRIBUTE?
46© Copyright 2016 EMC Corporation. All rights reserved.
• Open source drives innovation• Influences directions of technology• Participate and donate • Maintain vibrant communities
MANY REASONS FOR CONTRIBUTIONS
47© Copyright 2016 EMC Corporation. All rights reserved.
• Great opportunity to learn• Expose your talent to the world• Build an accessible portfolio• Companies value/hire open source contributions• Companies hire contributors
SELFISH REASONS FOR CONTRIBUTING
48© Copyright 2016 EMC Corporation. All rights reserved. 48© Copyright 2016 EMC Corporation. All rights reserved.
CONCLUSION
49© Copyright 2016 EMC Corporation. All rights reserved.
• Participate in open source is easy• Many ways to participate• Participation is beyond coding• Find a project you use daily – contribute to it!
CONTRIBUTE NOW
50© Copyright 2016 EMC Corporation. All rights reserved.
Data Persistence in the New Container WorldWednesday 3PM
Joshua BernsteinVP of Technology for ETD
Tobi Knaup CEO & Co-Founder of Mesosphere
Guru Session
51© Copyright 2016 EMC Corporation. All rights reserved.
@EMCcode@vladimirvivien
emccode.comcommunity.emccode.com
Come visit us at Booth #1044 or in the vLab
Questions?
52© Copyright 2016 EMC Corporation. All rights reserved. 52© Copyright 2016 EMC Corporation. All rights reserved.