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