Was ist Open Source, und warum?

Sie denken also über einen Sprung in die Open-Source-Welt nach? Herzlichen Glückwunsch, die Welt weiß Ihren Beitrag zu schätzen! Lassen Sie uns darüber sprechen, was Open Source ist und warum sich Leute dafür engagieren.

Was genau bedeutet “Open Source”?

Ein Open-Source-Projekt kann von jedem Menschen für jeden Zweck verwendet, inspiziert, modifiziert und weiterverbreitet werden. Diese Rechte werden mittels einer Open-Source-Lizenz durchgesetzt.

Open Source ist leistungsstark, weil es Akzeptanzbarrieren senkt und Ideen schneller verbreiten lässt.

Um zu verstehen, wie es funktioniert, stellen Sie sich vor, eine Freundin von Ihnen lädt zur Grillparty ein und Sie bringen einen Kartoffelsalat mit.

  • Alle probiere den Salat (verwenden)
  • Er ist der Hit! Andere Gäste fragen Sie nach dem Rezept, das Sie auch gerne nennen (inspizieren)
  • Ihr süddeutscher Freund Alex schlägt vor, weniger Majo zu nehmen (modifizieren)
  • Eine andere Freundin, Lisa, möchte den Salat für ein Abendessen nächste Woche selbst ausprobieren (weiterverbreiten)

Zum Vergleich: Closed-Source entspricht einem Restaurantbesuch mit der Bestellung einer Portion Kartoffelsalat. Sie müssen eine Gebühr zahlen, um ihn zu essen, und das Restaurant wird Ihnen das Rezept wahrscheinlich nicht geben. Wenn Sie den Salat genau kopieren und unter Ihrem eigenen Namen verkaufen würden, könnte das Restaurant gegen Sie vorgehen.

Warum öffnen Menschen den Quellcode ihrer Software?

Es gibt viele Gründe warum eine Person oder Organisation ein Projekt open-sourcen wollen würde. Beispielsweise:

  • Zusammenarbeit: Open-Source-Projekte nehmen Beiträge aus der ganzen Welt an. Exercism beispielsweise ist eine Programmierübungsplatform mit über 350 Kontributor*innen.

  • Anpassungen: Open-Source-Projekte können von jedem Menschen für fast jeden Zweck benutzt werden. Leute können daraus sogar andere Dinge bauen. WordPress beispielsweise begann als ein Fork eines existierenden Projekts namens b2.

  • Transparenz: In einem Open-Source-Projekt können Fehler oder Ungereimtheiten von jedem behoben werden. Transparenz ist sowohl für Regierungen in Bulgarien oder den Vereinigten Staaten, für regulierte Industrien wie den Banken- oder Gesundheitssektor, und für Sicherheitssoftware wie Let’s Encrypt gleichermaßen wichtig.

Open Source ist nicht nur für Software, sondern auch für alle anderen Bereiche geeignet, von Datensätzen bis hin zu Büchern. Stöbern Sie durch GitHub Explore, um einen Eindruck der thematischen Breite von Open-Source-Projekten zu bekommen.

Bedeutet Open Source auch “gratis”?

Einer der größten Vorteile von Open Source ist, dass es kein Geld kostet. “Gratis” dagegen ist nur ein Nebenprodukt des Gesamtwertes.

Weil eine Open-Source-Lizense bedingt, dass jede*r die Software nutzen, modifizieren, und weiterverbreiten darf (für nahezu jeden Zweck), nehmen die Projekte selbst meist kein Geld dafür. Wenn sie es täten, könnte jede*r ganz legal das Projekte kopieren und die dann freie Version nutzen.

Daher sind die meisten Open-Source-Projekte kostenlos, aber das ist kein Teil der Open-Source-Definition. Es gibt für Open-Source-Projekte Möglichkeiten, sich indirekt bezahlen zu lassen (z.B. über Doppellizenzierung oder eingeschränkte Funktionen) und dabei trotzdem die offizielle Definition von Open-Source weiterhin einzuhalten.

Sollte ich mein eigenes Open-Source-Projekt starten?

Die kurze Antwort ist “Ja!”, denn egal wie das Ergebnis aussieht: Ein eigenes Projekt zu starten, ist eine großartige Möglichkeit zu lernen, wie Open Source funktioniert.

Wenn Sie noch nie den Quellcode eines Projektes geöffnet haben, werden Sie vielleicht nervös darüber sein, was die Leute sagen werden, oder ob es jemandem auffallen wird. Mit diesen Bedenken wären Sie nicht allein!

Open-Source-Arbeit ist eine kreative Aktivität wie Schreiben oder Malen, oder anderes. Es kann beängstigend sein, seine Arbeit mit der Welt zu teilen, aber der einzige Weg besser zu werden, ist zu üben - auch wenn man kein Publikum hat.

Wenn Sie noch nicht überzeugt sind, nehmen Sie sich einen Moment Zeit, um darüber nachzudenken, was Ihre Ziele sein könnten.

Ihre Ziele definieren

Ziele können Ihnen helfen, herauszufinden, woran Sie arbeiten sollen, was Sie ablehnen sollen und wo Sie Hilfe von anderen brauchen. Fragen Sie sich zuerst: Warum öffne ich dieses Projekt?

Es gibt keine richtige Antwort auf diese Frage. Vielleicht haben Sie mehrere Ziele für ein einzelnes Projekt oder verschiedene Projekte mit unterschiedlichen Zielen.

Wenn es Ihr einziges Ziel ist, Ihre Arbeit zu zeigen, wollen Sie vielleicht nicht einmal Beiträge, und sagen dies sogar in Ihrer README. Andererseits, wenn Sie sich Beiträge wünschen: Investieren Sie Zeit in eine klare Dokumentation, damit sich Neuankömmlinge willkommen fühlen.

Wenn Ihr Projekt wächst, braucht Ihre Community mehr als nur Code von Ihnen. Die Reaktion auf Probleme, die Überprüfung von Code und das Anpreisen Ihres Projekts sind alles wichtige Aufgaben in einem Open-Source-Projekt.

Während die Zeit, die Sie für nicht-Programmieraufgaben aufwenden, von der Größe und dem Umfang Ihres Projekts abhängt, sollten Sie als Betreuer*in darauf vorbereitet sein, diese selbst anzugehen oder jemanden zu finden, der Ihnen hilft.

Wenn Sie Teil eines Unternehmens sind, das ein Projekt öffnet, stellen Sie sicher, dass Ihr Projekt über die internen Ressourcen verfügt, die es braucht, um zu gedeihen: Sie wollen klarstellen, wer für die Wartung des Projekts nach dem Start verantwortlich ist und wie Sie diese Aufgaben mit Ihrer Community teilen.

Wenn Sie ein dediziertes Budget oder Personal für Werbung, Betrieb und Wartung des Projekts benötigen, planen Sie dies frühzeitig.

Zu anderen Projekten beitragen

Wenn Ihr Ziel das Lernen ist, wie man mit anderen zusammenarbeitet oder wie Open Source funktioniert, sollten Sie in Erwägung ziehen, zu einem bestehenden Projekt beizutragen. Dies kann so einfach sein wie die Korrektur von Tippfehlern oder das Aktualisieren der Dokumentation.

Wenn Sie sich nicht sicher sind, wie Sie als Mitwirkende*r anfangen können, schauen Sie sich unseren Artikel “Wie zu Open Source beitragen?” an.

Ein eigenes Open-Source-Projekt starten

Es gibt keine perfekte Zeit, um Ihre Arbeit zu veröffentlichen. Sie können eine Idee, ein in Arbeit befindliches Projekt, oder ein Jahre altes Closed-Source-Pröjekt öffnen.

Im Prinzip immer, wenn Sie sich sicher sind, dass andere Ihre Arbeit sehen sollten, und Feedback dazu geben.

Unabhängig davon, in welcher Phase Sie sich für Open Source entscheiden, sollte jedes Projekt die folgende Dokumentation enthalten:

Als Maintainer*in helfen Ihnen diese Komponenten, Erwartungen zu kommunizieren, Beiträge zu verwalten und die gesetzlichen Rechte aller (einschließlich Ihrer eigenen) zu schützen. Sie tragen zudem zu einer positiven Erfahrungen in Ihrem Projekt bei.

Wenn sich Ihr Projekt auf GitHub befindet, können Sie diese Dateien mit den empfohlenen Dateinamen in Ihrem Stammverzeichnis ablegen, damit GitHub sie erkennt und automatisch an Ihre Leser*innen weitergeben kann.

Eine Lizenz auswählen

Eine Open-Source-Lizenz garantiert, dass andere Ihr Projekt ohne Nebenwirkungen nutzen, kopieren, modifizieren und wieder einbringen können, und schützt Sie vor unangenehmen rechtlichen Situationen. Wenn Sie ein Open-Source-Projekt starten, müssen Sie eine Lizenz angeben.

Rechtsangelegenheiten sind kein Spaß. Die gute Nachricht ist, dass Sie eine bestehende Lizenz kopieren und in Ihr Repository einfügen können. Es dauert also nur eine Minute, Ihre harte Arbeit zu schützen.

MIT, Apache 2.0, und GPLv3 sind die populärsten Open-Source-Lizenzen, aber es gibt viele andere zur Auswahl.

Wenn Sie ein neues Projekt auf GitHub erstellen, haben Sie die Möglichkeit, eine Lizenz auszuwählen. Mit einer Open-Source-Lizenz wird Ihr GitHub-Projekt auch wirklich zum Open-Source-Projekt.

Eine Lizenz auswählen

Wenn Sie weitere Fragen oder Bedenken bezüglich der rechtlichen Aspekte der Verwaltung eines Open-Source-Projekts haben, können Sie sich an uns wenden.

Eine README schreiben

READMEs erklären nicht nur, wie Sie Ihr Projekt verwenden, sondern auch, warum Ihr Projekt wichtig ist und was Ihre Benutzer*innen damit machen können.

Versuchen Sie in Ihrer README folgende Fragen zu beantworten:

  • Was macht dieses Projekt?
  • Wozu nützt es?
  • Wie kann ich anfangen, es zu nutzen oder etwas beizutragen?
  • Wo wird mir geholfen, wenn ich Hilfe benötige?

Sie können Ihre README verwenden, um andere Fragen zu beantworten: z.B. wie Sie mit Beiträgen handhaben, welche Ziele das Projekt verfolgt, oder wie es um Lizenzen und Zuschreibungen steht. Wenn Sie keine Beiträge annehmen wollen oder Ihr Projekt noch nicht produktionsreif ist, schreiben Sie auch diese Informationen auf.

Manchmal vermeiden es Leute, eine README zu schreiben, weil sie das Gefühl haben, das Projekt sei unvollendet, oder weil sie keine Beiträge wollen. Aber auch dies sind gute Gründe, eine zu schreiben.

Weitere Inspirationen zum Schreiben einer README finden Sie in @18F’s “Making READMEs Readable” oder in @PurpleBooth’s README template.

Wenn Sie eine README-Datei im Hauptordner Ihres Projektes anlegen, zeigt GitHub diese automatisch auf der Homepage des Repos an.

Ihre Beitragsrichtlinien aufschreiben

Eine CONTRIBUTING-Datei erklärt Ihrem Publikum, wie es zu Ihrem Projekt beitragen kann. Beispielsweise können Sie informieren über:

  • Wie eine Fehlerbericht eingereicht werden kann (probieren Sie hierfür die Issue- und Pull-Request-Vorlagen)
  • Wie neue Funktionen vorgeschlagen werden sollten
  • Wie die Entwicklungsumgebung eingerichtet wird, und wie getestet wird

Neben thematischen Details präsentiert die CONTRIBUTING-Datei auch Ihre Erwartungen an Beiträge, z.B:

  • Die Beitragsarten, die Sie gerne hätten
  • Ihre Planungen und Ziele für das Projekt
  • Wie Beitragseinreicher*innen Sie kontaktieren sollten (oder auch nicht)

Mit einem warmen, freundlichen Ton und spezifischen Vorschlägen für Beiträge (wie z.B. “Dokumentationen verfassen” oder “eine Website erstellen”) können Sie dazu beitragen, dass sich Neuankömmlinge willkommen und begeistert fühlen.

Beispielsweise leitet Active Admin ihre Beitragsrichtlinien ein mit:

Zuerst einmal vielen Dank, dass Sie überlegt haben, einen Beitrag zu Active Admin zu leisten, denn es sind Menschen wie Sie, die Active Admin so großartig machen.

First off, thank you for considering contributing to Active Admin. It’s people like you that make Active Admin such a great tool.

In der Anfangsphase Ihres Projekts kann Ihre CONTRIBUTING-Datei einfach sein. Sie sollten immer erklären, wie Fehler oder Probleme gemeldet werden können und welche technischen Anforderungen (z.B. Tests) Leute erfüllen müssen, um einen Beitrag zu leisten.

Im Laufe der Zeit können Sie weitere häufig gestellte Fragen zu Ihrer CONTRIBUTING-Datei hinzufügen. Diese Informationen aufzuschreiben verhindert, dass weniger Leute die immer wieder gleichen Fragen stellen werden.

@nayafia’s CONTRIBUTING-Vorlage oder @mozilla’s “How to Build a CONTRIBUTING.md” helfen Ihnen, Ihre Beitragsrichtlinien zu entwerfen.

Verlinken Sie Ihre CONTRIBUTING-Datei in Ihrer README, sodass mehr Leute sie bemerken. Wenn Sie sie zudem in Ihr Repo einchecken, wird GitHub automatisch auf sie aufmerksam machen, wenn jemand ein Issue oder Pull Request erstellt.

Beitragsrichtlinien

Einen Verhaltenskodex etablieren

Letztendlich hilft ein Verhaltenskodex, Grundregeln für das Verhalten der Projektbeteiligten festzulegen. Insbesondere wenn Sie ein Open-Source-Projekt für eine Community oder ein Unternehmen starten. Ein Verhaltenskodex hilft Ihnen, ein gesundes, konstruktives Gemeinschaftsverhalten zu fördern, das Ihnen als Maintainer*in Stress erspart.

Weitere Information finden Sie in unserer Anleitung für Verhaltenskodices.

Neben der Klarstellung welches Verhalten Sie von den Teilnehmer*innen erwarten, beschreibt ein Verhaltenskodex auch, auf wen sich diese Erwartungen beziehen, wann sie gelten und was zu tun ist, wenn ein Verstoß vorliegt.

Ähnlich zu Open-Source-Lizenzen, kommen auch Standards für Verhaltenskodices auf, sodass Sie keinen komplett eigenen schreiben müssen. Der Contributor Covenant ist ein einsatzbereiter Verhaltenskodex, der von über 40’000 Open-Source-Projekten verwendet wird, einschließlich Kubernetes, Rails und Swift. Egal welchen Text Sie nutzen, Sie sollten vorbereitet sein, ihn wenn nötig auch durchzusetzen.

Fügen Sie den Text direkt in eine CODE_OF_CONDUCT-Datei in Ihrem Repository ein. Halten Sie die Datei im Stammverzeichnis Ihres Projekts, damit sie leicht zu finden ist, und verlinken Sie sie von Ihrer README.

Ihr Projekt benennen und zur Marke machen

Eine Marke besteht aus mehr als einem auffälligen Logo oder einem einprägsamem Projektnamen. Es geht darum, wie Sie über Ihr Projekt sprechen und wen Sie mit Ihrer Botschaft erreichen.

Den richtigen Namen auswählen

Wählen Sie einen Namen, der leicht zu merken ist und im Idealfall eine Vorstellung davon vermittelt, was das Projekt bewirkt. Beispielsweise:

  • Sentry überwacht Apps und meldet Abstürze
  • Thin ist ein schneller, einfacher Web-Server in Ruby

Wenn Sie auf einem bestehenden Projekt aufbauen, kann die Verwendung des Namens als Präfix helfen, zu klären, was Ihr Projekt tut (node-fetch z.B. implementiert window.fetch für Node.js).

Denken Sie vor allem an die Klarheit. Wortspiele machen Spaß, aber denken Sie daran, dass manche Witze nicht in andere Kulturen oder für Menschen mit anderen Erfahrungen als Ihren, übersetzt werden können. Einige Ihrer potenziellen Nutzer*innen könnten Mitarbeiter*innen in Unternehmen sein: Sie wollen es ihnen nicht unangenehm machen, wenn sie Ihr Projekt bei der Arbeit erklären müssen!

Namenskonflikte vermeiden

Prüfen Sie, ob es Open-Source-Projekte mit ähnlichem Namen gibt, insb. in der selben Sprache oder demselben Ökosystem. Wenn Ihr Projektname mit einem existierenden, populären Projekt überlappt, könnte das Ihr Publikum verwirren.

Wenn Sie möchten, dass eine Website, ein Twitter-Handle, o.Ä. Ihr Projekt repräsentieren, stellen Sie sicher, dass Sie die von Ihnen gewünschten Namen erhalten können. Um auf Nummer sicher zu gehen, können Sie diese Namen jetzt reservieren, auch wenn Sie sie noch nicht verwenden möchten.

Achten Sie darauf, dass der Name Ihres Projekts keine Marken verletzt, denn ein Unternehmen könnte Sie auffordern, Ihr Projekt zu einem späteren Zeitpunkt abzubrechen oder sogar rechtliche Schritte gegen Sie einzuleiten. Dieses Risiko einzugehen, ist es einfach nicht wert.

Nutzen Sie die WIPO Global Brand Database, um auf Namenskonflikte zu prüfen. Wenn Sie in einer Firma sind, ist dies eine der Aufgaben, bei denen Ihr Justiziariat Sie unterstützen kann.

Zum Schluss noch eine schnelle Google-Suche nach Ihrem Projektnamen: Werden die Leute Ihr Projekt leicht finden können, oder erscheint etwas anderes in den Suchergebnissen, das Sie nicht sehen möchten?

Auch den Schreib- und Programmierstil beeinflussen Ihre Marke!

Während der Lebenszeit Ihres Projektes werden Sie eine Menge schreiben: README, Anleitungen, Dokumentation, Antworten auf Anfragen, vielleicht sogar Newsletter und auf einer Mailingliste.

Egal ob offizielle Dokumentation oder informelle E-Mail: Ihr Schreibstil ist ein Markenzeichen Ihres Projektes. Bedenken Sie, wie er bei Ihrem Publikum ankommt, und ob dies dem Tonfall entspricht, den Sie rüberbringen möchten.

Freundliche, inklusive Sprache kann Ihr Projekt einladender für neue Helfer*innen machen. Bleiben Sie auch bei einfacher/leichter Sprache, denn nicht alle Ihrer Leser*innen sind Muttersprachler*innen.

Neben Wortwahl und Schreibstil, wird auch Ihr Programmierstil Teil der Marke Ihres Projekts. Angular und jQuery beispielsweise haben strenge Richtlinien dafür.

Eine Stilrichtlinie ist nicht sofort zum Start Ihres Projekts nötig, und vielleicht genießen Sie es auch, unterschiedliche Programmierstile in Ihr Projekt zu integrieren. Allerdings sollten Sie davon ausgehen, dass verschiedene Schreib- und Programmierstile verschiedene Leute anziehen oder abstoßen. Die Weichen für die Gemeinschaft, die Sie letztendlich aufbauen möchten, werden schon in frühen Projektphasen gelegt.

Ihre Checkliste zur Startvorbreitung

Bereit für den Start Ihres Open-Source-Projektes? Diese Checkliste hilft Ihnen dabei. Alle Stationen bereit? Dann los! Klicken Sie auf “publish” und klopfen Sie sich auf die Schulter.

Dokumentation

Code

Menschen

Wenn Sie als Einzelperson arbeiten:

Wenn Sie als Firma oder Organisation arbeiten:

Sie haben’s geschafft!

Herzlichen Glückwunsch zu Ihrem ersten Open-Source-Projekt! Egal was hinten raus kommt, öffentlich zu arbeiten, ist ein Geschenk an die Gemeinschaft. Sie erschaffen mit jedem Commit, jedem Kommentar und jedem Pull Request eine Gelegenheit für sich selbst und andere, etwas zu lernen und intellektuell zu wachsen.