Open Source Software ist aus der modernen Softwareentwicklung nicht mehr wegzudenken und kaum ein Projekt kommt heute noch ohne sie aus. Damit Open Source Projekte langfristig Erfolg haben können, benötigt es jedoch mehr als offenen Quellcode. Viele Projekte scheitern an mangelnder Zusammenarbeit und Alleingängen weniger Entwickler:innen. Hier ein Leitfaden für ein Open Source Projekt mit Zukunft:
Die Basics:
Lizenz: Eine klare und verständliche Lizenz ist die rechtliche Grundlage dafür, dass andere Entwickler:innen den Code nutzen, verändern und weiterverbreiten dürfen und kann somit Anreize schaffen sich am Projekt zu beteiligen. Mit der Wahl der Lizenz wird ein Grundpfeiler für die Zusammenarbeit gelegt. Die Wahl der Lizenz sollte bedacht vorgenommen werden, da sie grosse Auswirkungen auf die Nutzung, Verbreitung und den Einsatz in kommerziellen Produkten definiert.
Dokumentation: Sie ermöglicht es aussenstehenden das Projekt zu finden und zu verstehen. Für den Anfang sollte hier ein Grobüberblick über das Projekt gegeben werden (README.md). Die Dokumentation soll eine Anleitung zur Nutzung (Getting Started) enthalten, welche sich an ein breites Publikum richtet.
Branding: Das Projekt hat einen einprägsamen, beschreibenden Namen und verletzt damit keine bestehende Markenrechte. Ein Branding (Logo, Farben, Schriftarten) fällt zwar nicht unter die Basics, kann jedoch stark dazu beitragen einem Projekt einen Wiedererkennungswert und somit auch eine für die Community stärkende Identität zu verleihen.
Die Community:
Mit jedem Kommentar, Issue oder Pull Request wächst die Community. Eine formalisierte Organisation kann hier helfen, die Zusammenarbeit zu strukturieren und die Verantwortlichkeiten zu verteilen. Meist in CONTRIBUTING.md und CODE_OF_CONDUCT.md
Kommunikation: Offene und transparente Kommunikation sind entscheidend damit sich eine Community bilden kann und sich diese nicht zurückgelassen fühlt. Es sollte klar sein, wie Entscheidungen getroffen werden und wer die Verantwortung dafür trägt. Regelmässige Updates über den Projektfortschritt, geplante Features und anstehende Herausforderungen helfen sich hier auf gemeinsame Ziele zu fokussieren.
Truck Factor: Er gibt an wie stark ein Projekt von einzelnen Personen abhängt. Verteilte Verantwortung und Wissen innerhalb der Community gibt Sicherheit und Vertrauen und fördert somit auch die Beteiligung. Grosse Abhängigkeiten von Einzelpersonen treiben das Risiko für ein Nichtüberleben des Projektes in die Höhe.
Vision und Equality: Eine offene und inklusive Community sollte sich durch eine gemeinsame Vision und Werte auszeichnen. Es hilft die Vision immer wieder zu reflektieren und gegebenenfalls anzupassen. Beiträge, welche die Vision der Projekte unterstützen, sollten gleich behandelt werden unabhängig davon ob kommerzielle Interessen verfolgt werden oder nicht.
Katalysatoren und Barrieren:
Werkzeuge: Der Einsatz von geeigneten Werkzeugen können einen grossen Beitrag zum Überleben eines Open Source Projekts leisten. Plattformen wie GitHub bieten Werkzeuge wie Issue-Tracker, CI/CD-Pipeline, Milestone-Planung und Discussions, welche Struktur und Sicherheit geben. Erweiternd können Chat-Plattformen eingesetzt werden, um den unkomplizierten Austausch zu fördern.
Prinzipien: Klare Prinzipien und Richtlichtlinien führen zu Wartbarkeit und Konsistenz. Gemeinsam mit der Anwendung von
Programmiersache: Die Wahl der Sprache hat grossen Einfluss welche potenziellen Entwickler:innen sich am Projekt beteiligen können. Die in der Sprache verfügbaren Bibliotheken und Frameworks können grossen Einfluss auf Entwicklungsgeschwindigkeit haben.
Veraltet Technologien: Sie bergen nicht nur ein Risiko für neue Einsatzgebiete, sondern erschweren auch die Beteiligung von neuen Mitwirkenden. Entwickler: innen sind selten bereit, sich mit alten Technologien auseinanderzusetzen und dabei auf den Einsatz von modernen Werkzeugen zu verzichten.
Fazit:
Für Open Source Projekte sind eine klare Lizenz, gute Dokumentation und eine aktive Community entscheidend für den langfristigen Erfolg. Durch offene Kommunikation, verteilte Verantwortung und den Einsatz geeigneter Werkzeuge kann die Zusammenarbeit gefördert und die Nachhaltigkeit des Projekts gesichert werden. Letztendlich hängt der Erfolg eines Open Source Projekts von der Fähigkeit ab, sich an neue Anforderungen anzupassen und eine engagierte Gemeinschaft zu pflegen, ohne von einzelnen Personen abhängig zu sein.
Weiterführende Links und Sourcen:
- Open Source Guides
- COELHO, Jailton; VALENTE, Marco Tulio. Why modern open source projects fail. In: Proceedings of the 2017 11th Joint meeting on foundations of software engineering. 2017. S. 186-196.
- AVELINO, Guilherme, et al. On the abandonment and survival of open source projects: An empirical investigation. In: 2019 ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM). IEEE, 2019. S. 1-12.
- Beitragsbild: Unsplash
