53
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 VIVIEN Developer Advocate, EMC {code}

EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

Embed Size (px)

Citation preview

Page 1: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

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}

Page 2: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

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

Page 3: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

3© Copyright 2016 EMC Corporation. All rights reserved.

• Why Open Source• What is a contribution?• Ways to contribute• Why Contribute

AGENDA

Page 4: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

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

Page 5: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

5© Copyright 2016 EMC Corporation. All rights reserved.

WHO IS USING OPEN SOURCE (OSS) TODAY?

Page 6: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

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

Page 7: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

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

Page 8: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

8© Copyright 2016 EMC Corporation. All rights reserved. 8© Copyright 2016 EMC Corporation. All rights reserved.

Open Source Everywhere

Page 9: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

9© Copyright 2016 EMC Corporation. All rights reserved.

• Personal• Enterprise• Government• Military• Science• Academia• Manufacturing

PERVASIVE IN ALL SECTORS

Page 10: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

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

Page 11: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

11© Copyright 2016 EMC Corporation. All rights reserved. 11© Copyright 2016 EMC Corporation. All rights reserved.

Sounds great!

What’s the problem?

Page 12: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

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

Page 13: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

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

Page 14: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

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.

Page 15: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

15© Copyright 2016 EMC Corporation. All rights reserved. 15© Copyright 2016 EMC Corporation. All rights reserved.

WHAT IS A CONTRIBUTION?

Page 16: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

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

Page 17: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

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 ?

Page 18: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

18© Copyright 2016 EMC Corporation. All rights reserved. 18© Copyright 2016 EMC Corporation. All rights reserved.

PROMOTE THE PROJECT

Page 19: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

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

Page 20: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

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

Page 21: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

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

Page 22: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

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

Page 23: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

23© Copyright 2016 EMC Corporation. All rights reserved. 23© Copyright 2016 EMC Corporation. All rights reserved.

ADOPT AND USE OPEN SOURCE

Page 24: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

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

Page 25: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large 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

Page 26: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

26© Copyright 2016 EMC Corporation. All rights reserved. 26© Copyright 2016 EMC Corporation. All rights reserved.

PROVIDE FEEDBACK AND FILE ISSUES

Page 27: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

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

Page 28: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

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

Page 29: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

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

Page 30: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

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

Page 31: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

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

Page 32: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

32© Copyright 2016 EMC Corporation. All rights reserved. 32© Copyright 2016 EMC Corporation. All rights reserved.

DOCUMENT

Page 33: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

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

Page 34: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

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

Page 35: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

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

Page 36: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

36© Copyright 2016 EMC Corporation. All rights reserved. 36© Copyright 2016 EMC Corporation. All rights reserved.

CONTRIBUTE CODE

Page 37: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

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

Page 38: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

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

Page 39: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

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

Page 40: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

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!

Page 41: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

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

Page 42: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

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

Page 43: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

43© Copyright 2016 EMC Corporation. All rights reserved. 43© Copyright 2016 EMC Corporation. All rights reserved.

CONTRIBUTE MONETARILY

Page 44: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

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

Page 45: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

45© Copyright 2016 EMC Corporation. All rights reserved. 45© Copyright 2016 EMC Corporation. All rights reserved.

WHY CONTRIBUTE?

Page 46: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

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

Page 47: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

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

Page 48: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

48© Copyright 2016 EMC Corporation. All rights reserved. 48© Copyright 2016 EMC Corporation. All rights reserved.

CONCLUSION

Page 49: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

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

Page 50: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

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

Page 51: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

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?

Page 52: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects

52© Copyright 2016 EMC Corporation. All rights reserved. 52© Copyright 2016 EMC Corporation. All rights reserved.

Page 53: EMC World 2016 - code.11 Intimidate me not - How to Contribute to Large Open Source Projects