(Fast) alles was man an der Uni nicht lernt

Dan Čermák

CC BY 4.0

who -u

Dan Čermák

Software Developer/RelEng/QA @SUSE
i3 SIG, Package maintainer
https://dancermak.name
dcermak
@Defolos@mastodon.social

Agenda

Why?

English is everywhere

Technology

  • testing is important and insufficient
  • real infra: and 🧙
  • git is 👑
  • backend: , ,
  • frontend:
  • enterprise: , SAP, Kotlin

…technology will change…

but one thing will never change

you have to work with people

Working with People in FLOSS

  • their motivation ≠ your motivation
  • their employer ≠ your employer
  • their culture ≠ your culture
  • their timezone ≠ your timezone

How to be a Contributor

  • think about the why
  • say hi 👋
  • start small
  • don't try changing the world (at first)

Pick the right project

  • pick something where you have a stake
  • project must want contributions

Community

  • "just a bunch of people"
  • have a common goal
  • often no clear joining rules

How to communicate

  • asynchronous: email, forums
  • synchronous: chat, voice/video chat
  • issue/bug/feature tracker(s)

avoid ambiguities!

Yeah, right

  • keep it simple
  • be kind to each other

There's no bad people

(with exceptions)

What it means to be a Maintainer

  • you will have to learn to let go & share responsibilities
  • take care of all the "boring" parts:
    • infra
    • documentation
    • onboarding & mentoring
    • issue triage & patch reviews
    • funding
    • moderation
  • licenses/legal
  • project & release management

Licenses

⚠️ IANAL applies ⚠️

  • prescriptive vs permissive
  • attribution?
  • copyleft?
  • patents?

👉️ choosealicense.com

How to make your project popular

  • build something that people truly need/want
  • marketing: talks, tutorials, evangelizing
  • documentation, documentation, documentation

The Contributor Funnel

Recruiting contributors

  • past impact does not matter, perceived future impact does
  • contributors need a vision
  • good onboarding experience encourages further onboarding
  • prompt responses boost the chances of a contributor returning

Motivations for contributing

  1. Ideology
  2. Altruism
  3. Fun
  4. Kinship
  5. Reputation
  6. Reciprocity
  7. Learning
  8. Own-Use
  9. Career
  10. Pay

Staying motivated

Build a welcoming community

  • enforce a code of conduct
  • provide one place for your community to meet & talk
  • document & enforce processes meticulously
  • be present and friendly
  • empower your contributors

Conflicts - One Bad Apple can spoil the Barrel

There will be conflicts

Rules enforcement & automation

Take care of yourself

  • stay true to yourself & your motivation
  • you must stay your top priority


  1. Learn to say no
  2. Take it easy and don't take it personally
  3. Take it slow

Feedback

Receiving feedback

  • thank, absorb and reflect
  • don't defend yourself, adapt and discuss (if appropriate)

unfortunately:

  • you will mostly get negative feedback, if at all
  • only negative feedback can be crushing
  • must train to not be personally bothered

Providing feedback

  • criticize the code, not the person
  • be constructive, clear and fact oriented
  • be positive
  • speak only on your behalf

a thank you never hurt anyone ❤️

This all sounds horrible!

It's a lot of fun

You will learn a lot

But only delve into open source as long as it is fun

Links and Further Reading

dcermak.github.io/everything-you-didnt-learn-at-uni

Questions?