Wie freie Software entsteht

Ob GIMP, VLC Media Player oder Linux – freie Software begegnet einem im alltäglichen Computerleben häufiger als man vielleicht erwartet. Doch was ist alles nötig, um solch ein Projekt auf die Beine zu stellen?

Jonah Brüchert, Mitentwickler des offenen Messengers »Kaidan« berichtet von seinen Projekterfahrungen.

Open-Source-Projekte beginnen oft als ein kleines Hobby der Entwickler*innen. Mit der wachsenden Bekanntheit des Projektes wachsen sie häufig darüber hinaus, denn die Nutzenden des Projektes wünschen sich meist neue Funktionen und finden Fehler. Auch die Anzahl der Mitwirkenden steigt oftmals und es wird nötig die Ausrichtung des Projektes festzulegen.

Dieser Artikel soll meine Erfahrungen am Beispiel des Projekts Kaidan schildern, das eine Chat-App mit besseren Datenschutzverhältnissen entwickelt. Kaidan war das erste größer angelegte Vorhaben, an dem ich beteiligt war. Auch anderen Beteiligten ging das ähnlich. So haben wir laufend dazu gelernt und auch einige Fehler gemacht, die sich in künftigen Projekten vermeiden ließen. Hoffentlich ist dieser Artikel dabei hilfreich.

Projektorganisation – von Leiten und Leiden

Zur Führung eines Projekts gibt es verschiedene Ansätze. In einigen Projekten ist der oder die Gründer*in eine Art Chef auf Lebenszeit, und entscheidet über Ziele und deren Umsetzung. Während dies den Vorteil einer oft sehr klaren Entscheidungslage hat, ist es auch eine sehr hohe Belastung für die Leitung des Projekts, die sich um alles Organisatorische kümmern muss. Nicht selten stellen diese Menschen irgendwann fest, dass sie gar keine Zeit mehr haben, das zu tun was ihnen eigentlich Spaß gemacht hat – nämlich die Programmierung. Zusätzlich kann dies auch zu einem Gefühl der Ungerechtigkeit bei den weiteren Team-Mitgliedern führen, die zwar vielleicht viel Code beitragen, aber gar nicht mit entscheiden dürfen.

Oft gibt es deswegen eine Art Kompromisslösung, also eine kleine Zahl von Beitragenden, die entweder durch ihre lange Teilnahme am Projekt oder sehr große Beiträge eine Führungsrolle einnehmen. Während dies deutlich gerechter ist, kommt es hin und wieder zu langwierigen Diskussionen oder Streits über die Zielsetzung des Projekts, die sehr kräftezehrend und manchmal sogar abstoßend auf neue Beitragende wirken können.

Die dritte Variante ist eine Umsetzung weitgehend ohne Führung. Oft reguliert sich solch ein Projekt durch soziale Effekte, wie z. B. dadurch, dass neue Mitwirkende oft bei denen, die lange dabei sind, nach Verbesserungsvorschlägen, Überprüfung von Änderungen oder der Meinung fragen.

Der herausragende Vorteil des dritten Ansatzes ist: Selbst wenn der oder die Gründer*in das Projekt verlässt, stellt dies kein grundsätzliches Problem dar. Denn es gibt meist andere Menschen, die seine oder ihre Arbeit übernehmen können. Dadurch kommt es nicht zu einem „Machtvakuum“. Allerdings entsteht manchmal auch eine Unklarheit über das Ziel, was ebenfalls in langen Diskussionen darüber enden kann, welche Funktionen aufgenommen werden sollten und welche nicht.

Kaidan, das Projekt an dem ich beteiligt bin, stellt am ehesten die zweite Variante dar, also die mit einer Gruppe von Entscheidenden. Allerdings hatten wir anfangs wenig Erfahrung mit der Organisation von Projekten, sodass wir uns nicht sicher waren, wie viele Regelungen nötig sind.

In der Entwicklung stellen sich nämlich oft Fragen zu Abläufen, z. B. ob jede Zeile Code erst durch eine*n andere*n Entwickler*in überprüft werden muss. Im Nachhinein lässt sich sagen, dass es vorteilhaft ist, solche Vorgaben von Anfang an festzulegen. Wenn die Frage dann aufkommt, ist sie auf diese Weise einfach zu beantworten und muss nicht schnell und überstürzt entschieden werden.

Öffentlichkeitsarbeit

Eine andere wichtige Aufgabe für den Erfolg eines Projekts ist die Bewerbung, damit potenziell Interessierte davon erfahren. Je nach Zielsetzung und aktuellem Fortschritt der Entwicklung können unterschiedliche Varianten sinnvoll sein.

Nutzende finden Software oft über eine Internetsuche. Es lohnt sich also eine interessante Website mit einer möglichst generell gehaltenen und verständlichen Beschreibung zu veröffentlichen. Um existierende Benutzer*innen über den Fortschritt der Entwicklung und neue Funktionen zu informieren oder Fragen zu beantworten, sind auch Präsenzen in sozialen Medien sinnvoll.

Es ist vorteilhaft, auf der Webseite oder in sozialen Medien ab und zu Status-Updates zu veröffentlichen, da Menschen dadurch regelmäßig an das Projekt erinnert werden. Im Idealfall verbreiten sie die Artikel sogar und sorgen so für eine größere Reichweite und Nutzerbasis.

Um sich mit anderen Entwickler*innen auszutauschen, ist die Teilnahme an Konferenzen mit inhaltlichem Bezug zum Projekt eine nützliche Sache: Während die Teilnahme oft sehr viel Spaß macht, ist es möglich viel von anderen zu lernen und sie über das eigene Projekt zu informieren.

Nutzerbasis pflegen und Projekt ausbauen

Nach ein bisschen Öffentlichkeitsarbeit werden Softwareprojekte oft schnell in Firmen, Vereinen oder in Privathaushalten eingesetzt. Dann ist es wichtig, dass Community-Pflege und konkrete Weiterentwicklung stattfindet. Deswegen sollte sichergestellt werden, dass nicht nur eine einzelne Person Schreibzugriff auf den Quellcode und die Infrastruktur besitzt. In den harmlosen Fällen hat die Gründer*in sich vielleicht ein neues Projekt oder ein neues Hobby gesucht und hat deswegen keine Zeit mehr, sich darum zu kümmern. Aber auch in Fällen von Krankheit kann dies wichtig werden.

Obwohl Open-Source-Projekte in der Regel über das Internet entwickelt werden, ist es ein großer Vorteil, ab und zu Treffen mit den Beteiligten zu organisieren. Diese Zusammenkünfte werden oft „Sprints“ oder „Hackathons“ genannt. Dort können dann technische Probleme besprochen werden, die Pläne für die Zukunft festgelegt und zusammen neue Funktionen programmiert werden. Natürlich ist es für das Team auch einfach schön, sich mal persönlich zu sehen.

Ein Projekt benötigt Engagement und Geld

Oft stellen Firmen oder andere Institutionen (wie auch z. B. der DBJR im Rahmen von jugend.beteiligen.jetzt), Räumlichkeiten für Sprints zur Verfügung. In einigen Fällen werden die Reisekosten zu solchen Veranstaltungen zum Problem, wenn Entwickler*innen weiter entfernt leben. Glücklicherweise existieren Zusammenschlüsse aus mehreren Projekten, die oft Möglichkeiten gefunden haben, in solchen Fällen zu helfen. Eines davon ist KDE: Es kann Open-Source-Projekten neben anderen Vorteilen auch mit Reisekosten helfen.

Um Entwickler*innen zu ermöglichen, mehr Zeit in das Projekt zu investieren, sammeln viele Projekte Spenden oder beantragen Förderung. Auch für Kaidan haben wir solche Angebote bereits genutzt.

Obwohl die primäre Motivation hinter Open-Source-Projekten häufig der Spaß am Programmieren ist, müssen Entwickler*innen auch Organisationsprobleme lösen und sich um die Benutzer*innen kümmern. Mit den passenden Regelungen kann das aber gut funktionieren und sehr viel Freude bereiten. Bei Treffen außerhalb des Internets kann man dabei auch noch Gleichgesinnte kennenlernen und seine Ideen verwirklichen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.