SlideShare a Scribd company logo
1 of 51
Contributing to Open
Source 101
X C o n f G u r g a o n ' 1 4
2
Our Journey
3
What we thought it was
● Find a project
● Find bugs
● Send Patch/Pull Request
4
Why?
What?
How?
When?
5
Why?
The reasons we wanted to contribute
6
● Awesome workplace
● A lot of activities
● Challenging projects
● Something missing!
Why?
7
Our reasons
● Give back to the community
● Become Immortal
● Reach
● Be part of a change/Be
disruptive
● Network
● Become a better developer
8
Other Driving Factors
● Profile
● Fame
● Travel
● Solving a problem
● Improving solutions
9
What?
Next Steps...
10
(Now) What?
Umm.. Where do we start...
11
12
Inception
● We tried learning about a lot of
projects.
● Rust, Servo, KDE, Firefox ...
● Even tried learning the languages
● Failed. Frustrated.
● Work: 0 Time: A lot
13
14
Why did we fail?
15
#Fail
✗ Had never used it
✗ Only judged by impact
✗ Picked projects with giant learning
curves
16
Seeking help
● IRC
● Blogs
● Meetups in Delhi/NCR
● We met RMS!
17
18
Know Thyself
19
Know Thy Interests
● Pick something you use
● Something you care about
● Something that will annoy you if it
doesn't work
20
How?
Techniques and Tools
21
www.openhatch.org
22
Know Thy Project
● Use it. And keep using it.
● Understand the itch
● Talk to contributors on IRC/IRL
● Talk to users
● Read Mailing Lists
● Needs and Wants
23
Funny picture
about learning
curves
24
Starting Point
● KDE: 'Junior Jobs'
● Mozilla: 'Mentored Bugs' and 'Good
First Bugs'
● Github: Tags ('Easy' etc)
● Take your pick
25
Know Thy Code
● Obtain source code
● Build
● Run tests
● Play with it. Explore.
● Read wikis
26
Tools pic
Wrong tools mishap
27
Know thy tools
● Start with no tools
● Explore tools for specific problems
● Ask seasoned contributors
28
Know Thy Community
● KDE: Active user and developer
community in India
● Mozilla: Developers vs Contributors
● Sketch-UI: Scratch your own itch
29
30
Know Thy Etiquettes
● Volunteers usually have other jobs
● Give descriptive feedback
● RTFM
● Spell-check
31
All set? Now get
your hands dirty!
Another funny
pic here. Omg.
Kill me. Now.
32
When?
Where is the time to do anything at all !!
33
Spend Thy Time
● Find company
● Make it a regular thing
● Doesn't always work the way you
thought it would
● After-hours
● Weekends
34
www.codetriage.com
35
CODE!
Getting familiar with the codebase
36
It's not going to
work the first time.
And it'll be a while
till you get the
hang of things.
37
Code -> Review
● Follow code guidelines
● KDE: Review board
● Mozilla: Bugzilla
● Properly formatted patches
● Build bigger features in increments.
TEST!
38
Check in
● Run tests locally
● Mozilla: Run on Try Servers
● Write a beautiful commit message
● Rinse, Repeat
● Get approval on patch
● Check In final patch
39
Nope.
- Albert Einstein
on reading our
first patch to
Firefox
40
Immortality
41
Pitfalls
● Too scared to ask questions
● Didn't dedicate time
42
What we thought it was
● Find a project
● Find bugs
● Send Patch/Pull Request
43
(11)2
to (11)10
Rules
<Insert Awkward Laughter Here />
44
(11)10
Steps
● Know Thyself
● Know Thy Interests
● Know Thy Project
● Know Thy Code
● Know Thy Tools
● Know Thy Community
● Know Thy Etiquettes
● Spend Thy Time
● While true: (Code →
Review)
● Check-in
● Achieve Immortality
45
Learnings
● Contributions != Code
● You can start your own project if
you have an itch that can't be
scratched with the help of TWers
46
Nagging Questions
● Why do we not see people regularly
contributing? (Outside work related
software)
● Why the aversion to free software?
47
We ended up
contributing to:
Sketch-UI, Mozilla,
KDE
48
What's next?
49
https://github.com/pagekite/mailpile || www.mailpile.is
50
THANKS
Paras Narang
@parasnarang
Rishab Arora
@spacetime29

More Related Content

What's hot

DIve into the Open World - Presentation outline
DIve into the Open World - Presentation outline DIve into the Open World - Presentation outline
DIve into the Open World - Presentation outline
R.Harish Navnit
 
Coding Dojo: Fun with Tic-Tac-Toe (2014)
Coding Dojo: Fun with Tic-Tac-Toe (2014)Coding Dojo: Fun with Tic-Tac-Toe (2014)
Coding Dojo: Fun with Tic-Tac-Toe (2014)
Peter Kofler
 
Software Craftsmanship Journeyman Tour (2013)
Software Craftsmanship Journeyman Tour (2013)Software Craftsmanship Journeyman Tour (2013)
Software Craftsmanship Journeyman Tour (2013)
Peter Kofler
 
Coding Dojo: Mars Rover (2014)
Coding Dojo: Mars Rover (2014)Coding Dojo: Mars Rover (2014)
Coding Dojo: Mars Rover (2014)
Peter Kofler
 
Idiomatic R for Rosetta Code (2013)
Idiomatic R for Rosetta Code (2013)Idiomatic R for Rosetta Code (2013)
Idiomatic R for Rosetta Code (2013)
Peter Kofler
 

What's hot (14)

DIve into the Open World - Presentation outline
DIve into the Open World - Presentation outline DIve into the Open World - Presentation outline
DIve into the Open World - Presentation outline
 
Coding Dojo: Fun with Tic-Tac-Toe (2014)
Coding Dojo: Fun with Tic-Tac-Toe (2014)Coding Dojo: Fun with Tic-Tac-Toe (2014)
Coding Dojo: Fun with Tic-Tac-Toe (2014)
 
Some of my best friends are localisers
Some of my best friends are localisersSome of my best friends are localisers
Some of my best friends are localisers
 
OpenStack Upstream Training Report
OpenStack Upstream Training ReportOpenStack Upstream Training Report
OpenStack Upstream Training Report
 
Software Craftsmanship Journeyman Tour (2013)
Software Craftsmanship Journeyman Tour (2013)Software Craftsmanship Journeyman Tour (2013)
Software Craftsmanship Journeyman Tour (2013)
 
Workflow and development in globally distributed mobile teams
Workflow and development in globally distributed mobile teamsWorkflow and development in globally distributed mobile teams
Workflow and development in globally distributed mobile teams
 
Coding Dojo: Mars Rover (2014)
Coding Dojo: Mars Rover (2014)Coding Dojo: Mars Rover (2014)
Coding Dojo: Mars Rover (2014)
 
Is there a Future for devops ?
Is there a Future for devops   ? Is there a Future for devops   ?
Is there a Future for devops ?
 
ATO 2014 - So You Think You Know 'Go'? The Go Programming Language
ATO 2014 - So You Think You Know 'Go'? The Go Programming LanguageATO 2014 - So You Think You Know 'Go'? The Go Programming Language
ATO 2014 - So You Think You Know 'Go'? The Go Programming Language
 
Teaching Kids Programming Using the Intentional Method
Teaching Kids Programming Using the Intentional MethodTeaching Kids Programming Using the Intentional Method
Teaching Kids Programming Using the Intentional Method
 
Autonomous Frontend Team
Autonomous Frontend TeamAutonomous Frontend Team
Autonomous Frontend Team
 
Build up an agile community
Build up an agile communityBuild up an agile community
Build up an agile community
 
Idiomatic R for Rosetta Code (2013)
Idiomatic R for Rosetta Code (2013)Idiomatic R for Rosetta Code (2013)
Idiomatic R for Rosetta Code (2013)
 
Refactoring the Tennis Kata (2013)
Refactoring the Tennis Kata (2013)Refactoring the Tennis Kata (2013)
Refactoring the Tennis Kata (2013)
 

Similar to Xconf 2014 - Contributing to Open Source

Similar to Xconf 2014 - Contributing to Open Source (20)

Coding dojo
Coding dojoCoding dojo
Coding dojo
 
Techhub Riga - tm 27.07
Techhub Riga - tm  27.07Techhub Riga - tm  27.07
Techhub Riga - tm 27.07
 
Coding Introductory Lesson Upper Elementary
Coding Introductory Lesson Upper ElementaryCoding Introductory Lesson Upper Elementary
Coding Introductory Lesson Upper Elementary
 
En Route To Industry: Tips on Transferring from College into Industry
En Route To Industry: Tips on Transferring from College into IndustryEn Route To Industry: Tips on Transferring from College into Industry
En Route To Industry: Tips on Transferring from College into Industry
 
Your first 5 PHP design patterns - ThatConference 2012
Your first 5 PHP design patterns - ThatConference 2012Your first 5 PHP design patterns - ThatConference 2012
Your first 5 PHP design patterns - ThatConference 2012
 
Writing clean scientific software Murphy cleancoding
Writing clean scientific software Murphy cleancodingWriting clean scientific software Murphy cleancoding
Writing clean scientific software Murphy cleancoding
 
Teach yourself Ruby on Rails
Teach yourself Ruby on RailsTeach yourself Ruby on Rails
Teach yourself Ruby on Rails
 
12 Things Every Programmer Should Know
12 Things Every Programmer Should Know12 Things Every Programmer Should Know
12 Things Every Programmer Should Know
 
Global Day of Coderetreat'14 - Istanbul Event
Global Day of Coderetreat'14 - Istanbul EventGlobal Day of Coderetreat'14 - Istanbul Event
Global Day of Coderetreat'14 - Istanbul Event
 
Ace the Tech Interviews - www.hiredintech.com
Ace the Tech Interviews - www.hiredintech.comAce the Tech Interviews - www.hiredintech.com
Ace the Tech Interviews - www.hiredintech.com
 
Overcoming the Fear of Contributing to Open Source
Overcoming the Fear of Contributing to Open SourceOvercoming the Fear of Contributing to Open Source
Overcoming the Fear of Contributing to Open Source
 
Kickstarting career as an Android developer.pdf
Kickstarting career as an Android developer.pdfKickstarting career as an Android developer.pdf
Kickstarting career as an Android developer.pdf
 
GDC 2016: Modular Level Design of Fallout 4
GDC 2016: Modular Level Design of Fallout 4 GDC 2016: Modular Level Design of Fallout 4
GDC 2016: Modular Level Design of Fallout 4
 
Tdd distilled... in java
Tdd distilled... in javaTdd distilled... in java
Tdd distilled... in java
 
Ploneide
PloneidePloneide
Ploneide
 
Open Source in Real Life
Open Source in Real LifeOpen Source in Real Life
Open Source in Real Life
 
LET'S TALK ANDROID Dev
LET'S TALK ANDROID DevLET'S TALK ANDROID Dev
LET'S TALK ANDROID Dev
 
Essential programmer library
Essential programmer libraryEssential programmer library
Essential programmer library
 
We Need to Talk: How Communication Helps Code
We Need to Talk: How Communication Helps CodeWe Need to Talk: How Communication Helps Code
We Need to Talk: How Communication Helps Code
 
Fundamentals of App & Web Design
Fundamentals of App & Web DesignFundamentals of App & Web Design
Fundamentals of App & Web Design
 

Recently uploaded

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Recently uploaded (20)

Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 

Xconf 2014 - Contributing to Open Source

Editor's Notes

  1. Many ways to contribute. We pick code since that&amp;apos;s what we thought we were good at.
  2. Awesome workplace A lot of activities Challenging projects But something missing! Give back to the community Become Immortal Reach Be part of a change/Be disruptive
  3. Passion in you And may not be for everyone Discover yourself Figure out what you need to float your boat
  4. Passion in you And may not be for everyone Discover yourself Figure out what you need to float your boat
  5. sdf
  6. What are you passionate about? How much time do you have?
  7. Understand the problems it is solving And what was the creator thinking when he/she started the project You have to really understand it to feel it
  8. Understand the problems it is solving And what was the creator thinking when he/she started the project You have to really understand it to feel it
  9. You know all the tools and you&amp;apos;re super efficient. But next, you need communication. Group, community, not alone.
  10. Mailpile