-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcommunityovercode.html
477 lines (319 loc) · 11.6 KB
/
communityovercode.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
<!DOCTYPE html>
<html>
<head>
<title>Money doesn`t help much – Support projects with contributions</title>
<meta charset="utf-8">
<style>
body { font-family: 'Montserrat'; }
h1, h2, h3 {
font-weight: normal;
color: #302d73;
}
.remark-code, .remark-inline-code { font-family: 'Ubuntu Mono'; }
/* Two-column layout */
.left-column {
color: #777;
width: 20%;
height: 92%;
float: left;
}
.left-column h2:last-of-type, .left-column h3:last-child {
color: #000;
}
.right-column {
width: 75%;
float: right;
padding-top: 1em;
}
.footnote {
position: absolute;
bottom: 0;
}
</style>
</head>
<body>
<textarea id="source">
class: center, middle
# Money doesn`t help much – Support projects with contributions
### Niklas Merz
???
My name is Niklas and I wan't to talk about why money doesn't always help open source projects.
In the excellent talk just a few minutes ago we hear a lot about the big money in open source.
**I want to talk more about the individual contributors and the value they provide which just cannot be bought with money.**
But you should think about contributing to your favorite projects and help new contributors of projects you are maitaining.
---
# Agenda
0. Why this talk?
1. Facts about me
2. How many people get into Open Source
3. Getting invested
4. Advice for first time contributors
5. Onboarding new community members
6. Types of contributors
7. Is the project sustainable?
???
* Roadmap for this talk
* Structured like the typical journey of open source contributors
---
# Why
* Critical look at every open source project you love
* Many projects have only a few maintainers
* Users and maintainers should be aware of the state of projects and *investments* made or required
???
* Open source software has been part of my day job and personal projects for years
* Over the years people asked me how to support the projects I work on
* Many projects, also seemingly big ones could need some more maintainers
**Start discussions about common issues in projects**
**Encourage us as maintainers to think again how we onboard new contributors as it's easy to loose the perspective of newcomers**
---
# Facts about me
1. Apache Cordova User
2. Minor Apache Cordova contributor
3. Active Committer & PMC
4. No longer Cordova app developer
5. I suck at CSS
6. This presentation is styled using CSS
???
* Give some context
* I work with Apache Cordova which is a framework for **building mobile apps using web technologies**
* **Previous job** introduced to developing apps this way
* We got more and more advanced users and I started contributing
* I became a committer and PMC member
* I no longer build apps but I'm part of the Cordova project
* Fun fact CSS
---
background-image: url(img/holding-back.png)
.footnote[
https://us11.campaign-archive.com/?e=ca69183c1b&u=9d7ced8c4bbd6c2f238673f0f&id=f07f659a95
]
???
* The GitHub ReadME project did a survey what's peopel holding back from contributing
* Lack of time like me or other maintainers I talk to
* **Imposter syndrome and finding a project can be addressed by making it easier to get started and make people feel welcome**
---
# First contact
* Add an open source dependency to their project
* Discover a bug in an open source project
* Need a new feature
**What to do now?**
???
Let's start the open source journey
* Ususally people become users first by adding a dependency to their project
* After some time they discover a bug or need a new feature
Ask themselves what to do now if their issue get's no response or fix
---
# Advice for first time contributors
* Be kind
* Be patient
* Read documentation: A lot of common questions should already be documented "somewhere"
* If in doubt, dont' be afraid to ask
* **You need to build up trust, reputation, merit**
???
This is a good time to stop and think about first time contributors
**When I get asked about getting into open source..**
* Be kind
* Be patient
* Look hard for documentation. It's not always easy to find
* Keep in mind open source requires trust and you need to show your continued interest
---
# Support first timers as a maintainer
* Be kind
* Be patient
* Respond in a timely manner to keep motivation high and make contributions feel welcome
???
The other perspective as maintainers
It's basically the same
Critical: But dont let contributors wait too long for feedback
**Motivation is the priority because Motiviation leads to productivity**
---
# How people get invested
### The open source project is now critical for their business
* Product is built on top of open source software
* Important pieces of their software, tooling or infrastructure stack is open source
-> **Issues arise that threaten their business**
* Sponsoring the core maintainers if possible
* Find someone to pay to do the work
-> **Think about doing the work themselves**
???
* People get invested if a project becomes critical for their business
* Example my old job needed Cordova to keep up with the mobile platforms to keep on doing new releases
* Projects have security issues
* You might notice. Release cadence is slowing down and issues are not fixed in a timely manner
-> They need help for their issues. First instict is to find someone to pay or do the work themselves
---
# How to support here
* Make paid support options visible
* Contributors working as freelancers
* Consulting Companies
* Communicate that donations to the ASF cannot be used for development work
* Good and easy to find documentation on how to contribute
* Avoid too many "uncommon" steps and prefer existing tooling
???
# Make support options available
* Apache PLC4X has a site with companies available for paid support
* Apache IoTDB has a company offering support contracts
* Freelancers in the maintainer group
# ASF donations
* Targeted donation to our ASF project cannot be spent it for development hours
# Documentation & Process
* Make it easy to find and understand the process for new contributors
* Avoid too many uncommon steps and prefer existing tooling like the usual workflows used on GitHub etc.
---
# From first time to casual contributor
* Contributors see value in their work for the project
* They learn to navigate the waters
* Quality contributions
* Continued interest and participation
???
* Turnover point to make first timers feel welcome and keep them around
* They start to understand the process and get things done
* They show continued interest and participation
This is where PMCs at Apache think about making someone a commiter or PMC
---
# Onboarding new community members
* Check and tell them if their contribution is vaulable, maintainable and documented in line with the project
* Get a feel if a new contributor works in the "open source spirit"
* Can be trusted to complete task from start to finish
* Listen to feedback
* Ask for reviews and feedback before doing something possibly breaking
* Show trust early
* Review work and give advice
* Solid testing framework for fast feedback loops and safe code changes
* Documentations for internal dependencies and processes
???
**Getting to know a community can be just as hard as getting into the code**
* For me someone stepped up started talking to me in Slack
* Offer guidance to keep new contributors motivated and help them be productive
* Get a feel if a new contributor works in the "open source spirit"
* Can be trusted to complete task from start to finish
* Listens to feedback
* Asks for reviews and feedback before doing something possibly breaking
* Show trust early
* Show how things are done and review work
* Good testing helps to make sure new contributions are not breaking things
---
class: center, middle
# Get to know the people to understand the state of the project
???
* Observe a project a while to get to know the actors and activity happening there over a longer
period of time
* If I like or use a project -> I subscribe to the important channels & pay attention
---
class: center, middle
## Types of maintainers
???
* From my experience there are common types of maintainers
* Person can be more than one type
* Good to know what types of people are needed to run the project
* **Names are totally made up by me**
---
### Silent hero
* Stays in background
* Does a lot of coding work
* Thankless tasks:
* Releases
* Updates, refactorings
* Documentation
* ....
* Drives progress
???
From my experience this is the most important type of maintainer to keep a project alive
* Does not need attention
* Does a lot of coding work
* Thankless tasks:
* Releases
* Updates, refactorings
* Documentation
* Wants to work effectively and drive progress
---
### Helping hand
* Contact person for the community
* Answers a lot of user questions
* Issue triage and response
???
* Very important for the outward perception of the project and gaining new users
* First contact person for new users and contributors
* Keeps track of issues and and user questions
---
### Advocate
* Voice of the projects
* Talks and promotions
* Website, Documentations etc.
???
**Some projects may have a marketing person**
* Voice of the project
* Talks and promotions
* Website, documentations etc.
---
### Founder/Legend
* Started the project or contributor since "the early days"
* Lots of deep knowledge
* Knows the history behind things
* Sometimes hard to reach because they may have moved on to other things
???
* Started the project or contributor since "the early days"
* Lots of deep knowledge
* Knows the history behind things
* May not be very active in the daily work anymore but available
* Try to keep them around and respect their experience
---
background-image: url(img/communityovercodelogo.svg)
.footnote[
### Sustainbility is more about the community behind the code
]
???
It's more important to know the community than just producing code
After some time you show know who is important for the project
Consider if new contributors bring something valuable to the project
---
# Is the project sustainable?
* People available for fixes and security issues
* Decisions are made and not stalled
* Getting releases out (votes)
* Technical debt is addressed, refactorings are done successfully
* Development getting stuck
* Maintainer burnout
???
**The big question before investing in a project**
You ask questions like:
* Is it risky using this because it might go dead?
* Is it worth to invest in this project?
* With some experience you get a feeling.
* People available for fixes and security issues
* Decisions are made and not stalled
* Getting releases out (votes)
* Technical debt is addressed, refactorings are done successfully
* Development getting stuck
---
# Closing words
* Get to know the projects you love or need for your business
* Paid support options are in demand
* **Maintainers** please encourage contributions
* **Open source beginners** please just start contributing
???
Every project is different
* Get to know the projects you love or need for your business
* Paid support options are in demand
* Maintainers please encourage contributions
* Open source beginners please just start contributing
**Getting new maintainers in costs time but is a worthwile investment**
---
class: center, middle
# Questions?
---
background-image: url(img/qr.png)
.left-column[
## Niklas Merz
]
.right-column[
* E-Mail me: **[email protected]**
* Slides: https://niklas.merz.dev/open-source-talk
]
</textarea>
<script src="remark.js">
</script>
<script>
var slideshow = remark.create();
</script>
</body>
</html>