Open Source:
When Nights & Weekends
Are Not Enough
Philly.rb, March 2018
Slide 2
Slide 2 text
Ernesto Tagwerker
@etagwerker
Slide 3
Slide 3 text
Founder &
Software Engineer
at Ombu Labs
Slide 4
Slide 4 text
Open Source
Contributor &
Maintainer
Slide 5
Slide 5 text
Father &
Husband
at Home
Slide 6
Slide 6 text
<>
Slide 7
Slide 7 text
Open Source
& Parenting
7
Slide 8
Slide 8 text
Open Source
& Lack of Time
8
Slide 9
Slide 9 text
2. What is a contribution?
9
1. Pre-Parenting vs. Post-Parenting
3. Tips for Contributors, Maintainers, & Managers
Slide 10
Slide 10 text
2. What is a contribution?
10
1. Pre-Parenting vs. Post-Parenting
3. Tips for Contributors, Maintainers, & Managers
Slide 11
Slide 11 text
2. What is a contribution?
11
1. Pre-Parenting vs. Post-Parenting
3. Tips for Contributors, Maintainers, & Managers
Slide 12
Slide 12 text
Pre-Parenting vs.
Post-Parenting
12
Slide 13
Slide 13 text
Pre-Parenting
Slide 14
Slide 14 text
Open Source:
Every Night
14
Slide 15
Slide 15 text
Open Source:
Entire Weekends
15
Slide 16
Slide 16 text
No content
Slide 17
Slide 17 text
Post-Parenting
Slide 18
Slide 18 text
Open Source:
Every Night
Some Nights
18
Slide 19
Slide 19 text
Open Source:
Entire Weekends
Some Weekend Nights
19
Slide 20
Slide 20 text
Open Source:
At Work
20
Slide 21
Slide 21 text
“Using and contributing to
open source often happens
on the job”
(Open Source Survey 2017)
Slide 22
Slide 22 text
What is an
open source contribution
anyway?
Slide 23
Slide 23 text
Submitting a
new issue
23
Slide 24
Slide 24 text
Submitting a
pull request
24
Slide 25
Slide 25 text
Creating an
open source project
25
Slide 26
Slide 26 text
According
to Github
Slide 27
Slide 27 text
Other ways
to contribute
Slide 28
Slide 28 text
Adding additional info
to an existing issue
28
Slide 29
Slide 29 text
Proposing a
workaround
29
Slide 30
Slide 30 text
Answering a question
in Stack Overflow
30
Slide 31
Slide 31 text
Contribution:
Adding value to an
open source project
Slide 32
Slide 32 text
1. Contributors
Slide 33
Slide 33 text
1. Contributors
2. Maintainers
Slide 34
Slide 34 text
1. Contributors
2. Maintainers
3. Managers
Slide 35
Slide 35 text
8 Tips
for Contributors
Slide 36
Slide 36 text
36
Bake in open source
contributions in
your workflow
1
Slide 37
Slide 37 text
A Workflow Without
Contributions
Slide 38
Slide 38 text
1. Use open source library
38
2. Find issue
3. Do research
The Usual Workflow
4. Found new bug
5. Apply solution
6. Move on to next problem
Slide 39
Slide 39 text
1. Use open source library
39
2. Find issue
3. Do research
The Usual Workflow
4. Found new bug
5. Apply solution
6. Move on to next problem
Slide 40
Slide 40 text
1. Use open source library
40
2. Find issue
3. Do research
The Usual Workflow
4. Found new bug
5. Apply solution
6. Move on to next problem
Slide 41
Slide 41 text
1. Use open source library
41
2. Find issue
3. Do research
The Usual Workflow
4. Found new bug
5. Apply solution
6. Move on to next problem
Slide 42
Slide 42 text
1. Use open source library
42
2. Find issue
3. Do research
The Usual Workflow
4. Found new bug
5. Apply solution
6. Move on to next problem
Slide 43
Slide 43 text
1. Use open source library
43
2. Find issue
3. Do research
The Usual Workflow
4. Found new bug
5. Apply solution
6. Move on to next problem
Slide 44
Slide 44 text
A Workflow With
Contributions
Slide 45
Slide 45 text
1. Use open source library
45
2. Find issue
3. Do research
A Workflow With Contributions
4. Found new bug
…
5. Submit a new issue
6. Submit a pull request (or not!)
Slide 46
Slide 46 text
1. Use open source library
46
2. Find issue
3. Do research
A Workflow With Contributions
4. Found new bug
5. Submit a new issue
6. Submit a pull request (or not!)
…
Slide 47
Slide 47 text
1. Use open source library
47
2. Find issue
3. Do research
A Workflow With Contributions
4. Found new bug
5. Submit a new issue
6. Submit a pull request (or not!)
…
Slide 48
Slide 48 text
48
…
A Workflow With Contributions
4. Found new bug
7. Apply solution
8. Move on to next problem
5. Submit a new issue
6. Submit a pull request (or not!)
Slide 49
Slide 49 text
49
2 bundle open
& byebug are your
friends
Slide 50
Slide 50 text
50
3 When you submit an issue
include all your research
Slide 51
Slide 51 text
No content
Slide 52
Slide 52 text
52
4 Submit small
pull requests
Slide 53
Slide 53 text
No content
Slide 54
Slide 54 text
54
5 Keep up with
the latest versions
Slide 55
Slide 55 text
No content
Slide 56
Slide 56 text
56
6 Solve every problem
as if your code were
to be open sourced
Slide 57
Slide 57 text
For example:
As a Developer I want to be
able to print official
invoices in Argentina
Slide 58
Slide 58 text
58
https://github.com/ombulabs/afip_bill
Slide 59
Slide 59 text
59
7 Contribute with
something you are
passionate about
Slide 60
Slide 60 text
60
Slide 61
Slide 61 text
61
https://github.com/etagwerker/rtopsy
Slide 62
Slide 62 text
62
Slide 63
Slide 63 text
Sorry!
Slide 64
Slide 64 text
64
Slide 65
Slide 65 text
Yes!
Slide 66
Slide 66 text
66
8 Reach out
to open source
developers
Slide 67
Slide 67 text
database_cleaner
& email-spec
Slide 68
Slide 68 text
2 Tips
for Maintainers
Slide 69
Slide 69 text
69
1 Be responsive
Slide 70
Slide 70 text
No content
Slide 71
Slide 71 text
No content
Slide 72
Slide 72 text
72
2 Actively search for
co-maintainers
Slide 73
Slide 73 text
database_cleaner
& email-spec
Slide 74
Slide 74 text
2 Tips
for Managers
Slide 75
Slide 75 text
75
1 Encourage your
team members
to make contributions
Slide 76
Slide 76 text
76
2 Recurring
open source days
(e.g. Open Source Fridays)