Zum Hauptinhalt wechseln
farbenmeer Logo
Blog / Veröffentlicht am

Der unterschätzte Wert von Open Source

Portrait von Max Strübing
Autorin

Max Strübing, Softwareentwicklung

Was ist Open Source?

Open-Source-Software bedeutet, dass der Quellcode einer Software öffentlich zugänglich ist. Jeder kann den Quellcode lesen, kopieren oder verändern, was die Software vertrauenswürdiger und langlebiger macht als Closed-Source-Software. Bekannte und große Beispiele für Open-Source-Projekte sind Linux kernel, Firefox, LibreOffice oder Android. Es gibt aber auch viele, viele kleine Open-Source-Projekte.

Vorteile

Wenn du Code lesen kannst, bist du tatsächlich in der Lage zu verstehen und zu bewerten, was passiert, wenn du die Software ausführst. Nicht nur, was die Software vorgibt zu tun, sondern was sie wirklich tut.

Diese Eigenschaft ermöglicht es außerdem jedem, den Quellcode auf Sicherheitslücken oder andere Schwachstellen jeglicher Art zu überprüfen, was zur bereits erwähnten Vertrauenswürdigkeit beiträgt.

Ein weiterer großer Vorteil ist, dass du von praktisch jedem Nutzer oder Mitwirkenden der Software Unterstützung anfragen kannst. Das ist meist schneller und bringt kreativere Lösungen als die meisten kommerziellen Support-Angebote.

Zudem ist die Software nicht nur vom ursprünglichen Autor abhängig, sondern kann von der Community gepflegt und erweitert werden. Es kann sogar unterschiedliche Versionen derselben Software mit verschiedenen Features geben. Wenn die Community eine bestimmte Funktion für keine gute Idee hält, kann jemand den Quellcode kopieren und eine eigene Version veröffentlichen.

Du kannst sehr viel lernen, und ich meine wirklich sehr viel!

Das Lesen und Verstehen von Quellcode anderer Programme ist nicht immer einfach, besonders wenn die Software relativ komplex ist. Aber im Verlauf lernst du viel, da du mit Ideen und Lösungen von vielen anderen Menschen konfrontiert wirst, die teilweise Stunden, Tage oder länger an einem speziellen Problem gearbeitet und eine Lösung gefunden haben.

Wenn du außerdem bereit bist, selbst beizutragen und nicht nur die Software zu nutzen, gewinnst du weitere Vorteile:

Du wirst gezwungen sein, viel mehr über dein Problem nachzudenken als bei Closed Source. Da die Software von vielen anderen Menschen genutzt wird, ist nicht nur dein spezieller Anwendungsfall relevant. Das zwingt dich dazu, das konkrete Problem tiefer zu verstehen und über sinnvolle Abstraktionen, Randfälle und Konfigurierbarkeit nachzudenken.

Ein weiterer wichtiger Schritt, der oft nicht wirklich wahrgenommen wird: Es reicht nicht nur, das Problem zu lösen oder eine Funktion zu implementieren – es ist auch sehr wichtig, lesbaren und wartbaren Code zu schreiben. Sonst wird niemand den Code anfassen können und mit der Weiterentwicklung der Software kann es passieren, dass der Code irgendwann entfernt wird, weil ihn niemand mehr versteht.

Wie jeder weiß: Gute Dokumentation ist der Schlüssel. Du musst tatsächlich Dokumentation schreiben, sonst kann niemand dein tolles neues Feature nutzen.

Und die Community des Projekts wird nicht glücklich sein und dein Feature möglicherweise gar nicht übernehmen. Das klingt alles vielleicht schwierig, aber ich denke, du lernst dabei Schlüsselkompetenzen, die für deine ganze Karriere als Softwareentwickler wichtig oder nützlich sind.

Besonders bei Bewerbungen ist das von Vorteil, denn andere können wirklich sehen, was du gemacht hast – statt nur darüber zu reden oder, noch schlimmer, deine Fähigkeiten auf einem Whiteboard zu testen.

Ein weiterer großer Vorteil ist die Freude, die du empfindest, wenn andere die Software, die du geschrieben hast, tatsächlich nutzen – besonders wenn sie sie auf Weisen einsetzen, die du gar nicht bedacht hast.

Nachteile

Was oft als Nachteil gesehen wird, ist die Monetarisierung deines Produkts. Auf den ersten Blick stimmt das, aber es gibt auch Möglichkeiten, mit Open-Source-Software Geld zu verdienen.

Wenn deine Software ein Dienst ist, könntest du eine gehostete Lösung anbieten, für die Nutzer bezahlen müssen. Wenn sie wollen und die Ressourcen haben, können sie sie aber auch selbst hosten.

Andererseits bist du Experte im Umgang mit, der Anpassung und der Entwicklung der Software. Wenn andere Unterstützung brauchen, können sie dich anheuern.

Einige Personen oder Firmen unterstützen Open-Source-Maintainer auch über Plattformen wie GitHub Sponsors oder Patreon.

Wenn dein Projekt wächst und immer mehr Leute mitwirken, wirst du kaum umhinkommen, einige Prozesse einzuführen, zum Beispiel:

  • Wann darf jemand einen Pull Request (PR) mergen?

  • Wer entscheidet, ob etwas hinzugefügt wird oder nicht?

  • Wer hat das letzte Wort bei Konflikten?

  • Welche Dokumentation ist Pflicht?

  • Sammeln wir Geld? (bei Non-Profit-Projekten)

  • Welches Merchandising produzieren wir?

Und vieles mehr – das sind nur Fragen, die mir spontan in weniger als fünf Minuten eingefallen sind. Solche Regeln und Prozesse einzuführen fühlt sich anfangs oft mühsam an, aber ohne sie kannst du dein Projekt nicht wirklich skalieren. Es gibt keine Patentlösung; du musst für dein Projekt passende Regeln und Abläufe finden, kannst dich aber an anderen Open-Source-Projekten orientieren.

Zusammenfassung

Open-Source-Software ist sehr beliebt, weil sie den Nutzern Vertrauen gibt. Das Mitwirken daran bietet viele Vorteile für die Mitwirkenden, auch wenn es deutlich anspruchsvoller ist als das Arbeiten an individuellen Closed-Source-Projekten, da du auf mehr und größere Details achten musst. Gleichzeitig kannst du damit sogar Geld verdienen.

farbenmeer Logo

Weiterführende Links

Umfrage

Welches Thema interessiert dich am meisten?