Kapitel 3. Technische Infrastruktur

Inhaltsverzeichnis

Das nötige Werkzeug
Mailinglisten
Schutz vor Spam
Filterung von Nachrichten
Verschleierung von Adressen im Archiv
Umgang mit E-Mail-Headern
Die große "reply-to"-Debatte
Zwei Fantasien
Archivierung
Mailinglisten-Software
Versionsverwaltung
Vokabular der Versionsverwaltung
Wahl einer Versionsverwaltung
Nutzung einer Versionsverwaltung
Versioniere alles
Zugang per Browser
Commit-E-Mails
Benutze Zweige, um Engpässe zu vermeiden
Eindeutigkeit von Informationen
Autorisierung
Bugtracker
Interaktion mit Mailinglisten
Vor-Filterung des Bugtrackers
IRC / Echtzeit-Nachrichtendienste
Bots
IRC-Archivierung
RSS-Feeds
Wikis
Website
Hosting-Pakete
Die Wahl des Hosting-Anbieters
Anonymität und Beteiligung

Freie Software-Projekte beruhen auf Techniken, die das selektive Aufgreifen und Integrieren von Information ermöglichen. Je gewandter Sie mit diesen Techniken umgehen und andere dazu bewegen können, sie zu benutzen, desto erfolgreicher wird Ihr Projekt sein. Mit zunehmender Größe Ihres Projekts, gewinnt diese Regel umso mehr an Bedeutung. Eine gute Informationsverwaltung verhindert, dass ein Open-Source-Projekt unter der Last von Brooks Gesetz ,[30] zusammenbricht. Sie besagt: Der Einsatz zusätzlicher Arbeitskräfte bei bereits verspäteten Softwareprojekten vergrößert nur die Verspätung. Er beobachtete, dass die Komplexität eines Projekts mit der Anzahl der Teilnehmer Quadratisch zunimmt. Wenn nur wenige beteiligt sind, kann jeder leicht mit jedem reden, wenn aber hunderte beteiligt sind, ist es nicht weiter möglich, dass jeder über die Arbeit aller anderen Bescheid weiß. Wenn es bei der Verwaltung eines freien Software-Projekts darum geht, jedem das Gefühl zu geben in einem Raum mit allen Anderen zu sitzen, stellt sich die offensichtliche Frage: Was passiert wenn alle in einem gedrängten Raum versuchen auf einmal zu reden?

Dieses Problem ist nicht neu. In der Praxis wird es gelöst wie in einem Parlament: Es gibt formelle Richtlinien für Diskussionen innerhalb von großen Gruppen, um sicherzustellen, dass wichtige Meinungsverschiedenheiten nicht durch Zwischenrufe verloren gehen. Weitere Richtlinien gibt es für die Bildung von Untergremien, sowie um erkennen zu können, wann Entscheidungen getroffen werden, usw. Ein wichtiger Teil der parlamentarischen Diskussion ist zu spezifizieren, wie die Gruppe ihre Informationen verwaltet. Manche Anmerkungen werden "fürs Protokoll" gemacht, andere nicht. Das Protokoll selbst ist Gegenstand direkter Änderungen, und wird nicht als wörtliche Niederschrift der tatsächlichen Ereignisse angesehen, sondern als Auflistungen der gemeinsam anerkannten Ereignisse. Das Protokoll ist nicht monolitisch, sondern nimmt verschiedene Formen an, für verschiedene Zwecke. Es umfasst die einzelnen Sitzungen, die komplette Sammlung aller Sitzungen, Zusammenfassungen, Tagesordnungen mit Anmerkungen, Berichte von Gremien und nicht anwesenden Korrespondenten, Abläufe, usw.

Da das Internet nicht wirklich ein Raum ist, müssen wir nicht die Teile der parlamentarischen Diskussion replizieren, die manche Leute ruhig hält, während andere Reden. Wenn es aber um Techniken zur Verwaltung von Informationen geht, sind gut betriebene Open-Source-Projekte wie eine parlamentarische Diskussionen auf Steroiden. Weil fast die gesamte Kommunikation in Open-Source-Projekten schriftlich abläuft, haben sich wohl durchdachte Systeme entwickelt um Daten angemessen zu markieren und an die richtige Stellen zu leiten; um Wiederholungen zu minimieren, damit Diskussionen nicht auseinander laufen; um Daten zu speichern und abzurufen; um schlechte oder veraltete Informationen zu korrigieren; und um getrennte Informationen miteinander zu verbinden, wenn Zusammenhänge gefunden werden. Aktive Teilnehmer verinnerlichen viele dieser Techniken und werden oft komplexe manuelle Aufgaben durchführen, um sicherzustellen, dass Information am richtigen Ziel ankommen. Diese Bestrebungen hängen aber letztendlich von der Unterstützung ausgeklügelter Software ab. Die Kommunikationsmedien sollten so weit möglich, diese Aufgaben selbstständig übernehmen und Information für Menschen so bequem wie möglich aufbereiten. In der Praxis werden Menschen natürlich an vielen Stellen eingreifen müssen und es ist wichtig, dass diese Eingriffe möglichst einfach sind. Im allgemeinen sollte aber, solange die Menschen sich bemühen Informationen sorgfältig zu Kennzeichnen und am richtigen Ziel zu leiten, die Software so konfiguriert sein, dass sie den größtmöglichen Nutzen aus diesen Metadaten zieht.

Die Ratschläge in diesem Kapitel sind sehr praxisnah und basieren auf ganz bestimmter Software und Nutzungsverhalten. Es geht hierbei aber nicht nur darum bestimmte Techniken zu zeigen. Es geht auch darum, durch viele kleine Beispiele, die beste Haltung zu demonstrieren, um in Ihrem Projekt eine möglichst gute Informationsverwaltung zu fördern. Diese Haltung wird eine Kombination aus technischen Fähigkeiten und sozialer Kompetenz sein. Technische Fähigkeiten sind unentbehrlich, da die Software konfiguriert, sowie gelegentlich gepflegt und Angepasst werden muss, sobald neue Anforderungen auftauchen (siehe z.B. den Abschnitt über die Handhabung von Wachstum, im Abschnitt „Vor-Filterung des Bugtrackers“ später in diesem Kapitel). Soziale Kompetenz ist nötig, da eine menschliche Gemeinschaft auch gepflegt werden muss: Es ist nicht immer sofort ersichtlich wie diese Hilfsmittel am besten genutzt werden, und manchmal haben Projekte widersprüchliche Konventionen (siehe z.B. Beispiel die Diskussion um die Einstellung des Reply-to Headers bei ausgehende Nachrichten der Mailingliste, in „Mailinglisten“). Jeder der mit dem Projekt etwas zu tun hat, wird zur richtigen Zeit und auf die richtigen Art, dazu ermutigt werden müssen, seinen Teil beizutragen, die Information des Projekts geordnet zu halten. Je größer die Beteiligung des Freiwilligen, desto komplexer und spezieller werden die Techniken die man von ihr erwarten kann, sich anzueignen.

Es gibt keine schablonenhafte Lösung für Informationsverwaltung. Es gibt einfach zu viele Variablen. Es kann sein das Sie irgendwann alles richtig eingerichtet haben, genau wie Sie es haben möchten, und die meisten Freiwilligen überredet haben mitzumachen. Sobald das Projekt jedoch wächst, können sich manche dieser Vorgänge als nicht skalierbar erweisen. Wenn der Wachstum sich stabilisiert und die Entwickler und Nutzer sich an die technische Infrastruktur gewöhnen, kann eine völlig neues Verwaltungssystem für Informationen aufkommen und neue Freiwillige werden ziemlich bald fragen, warum Ihr Projekt diese nicht einsetzt – viele freie Software-Projekte die vor der Erfindung von Wikis gegründet wurden, erleben das derzeit (siehe http://en.wikipedia.org/wiki/Wiki). Viele Fragen sind Ansichtssache und sind Kompromisse zwischen dem Komfort derjenigen die Informationen produzieren und dem Komfort derjenigen die diese konsumieren, oder der Zeit die erforderlich ist, die Software einzurichten und ihrem Nutzen für das Projekt.

Hüten Sie sich vor der Verlockung allzuviel zu automatisieren, dass eigentlich die Aufmerksamkeit eines Menschen erfordert. Technische Infrastruktur ist wichtig, aber ein freies Software-Projekt funktioniert in Wirklichkeit durch die Fürsorge – und die kluge Formulierung dieser Fürsorge – der beteiligten Menschen. Die technische Infrastruktur ist hauptsächlich diesen Menschen das möglichst zu vereinfachen.

Das nötige Werkzeug

Die meiste Open-Source-Projekte haben ein Mindestmaß an üblichen Hilfsmitteln um Informationen zu Verwalten:

Webseite

Hauptsächlich ein zentralisierter Kanal für Informationen vom Projekt in die Öffentlichkeit. Die Webseite kann auch eine administrative Schnittstelle für andere Hilfsmittel des Projekts sein.

Mailinglisten

Meistens das aktivste Forum in einem Projekt und das Medium "fürs Protokoll".

Versionsverwaltung

Ermöglicht es den Entwicklern Änderungen am Code bequem zu verwalten, u.a. auch rückgängig zu machen. Erlaubt es allen zu sehen was mit dem Code passiert.

Bugtracker

Ermöglicht Entwicklern ihre Arbeit im Blick zu behalten, miteinander zu koordinieren und neue Versionen zu planen. Erlaubt es jedem den Status von einem Bug zu überprüfen und Informationen über den Bug festzuhalten (z.B. wie man ihn reproduziert). Kann außer zur Beobachtung von Fehlern auch für die Planung von Aufgaben, neuen Versionen, Funktionen usw. benutzt werden.

Chat

Ein Ort für kurze, oberflächliche Diskussionen und um Fragen und Antworten auszutauschen. Wird nicht immer vollständig archiviert.

Jedes dieser Hilfsmittel ist dazu gedacht, einen bestimmten Bedarf zu decken, ihre Funktionen sind aber auch mit einander verwandt und müssen so eingerichtet werden, dass sie zusammen funktionieren. Weiter unten werden wir untersuchen wie man sie so einrichten kann und viel wichtiger noch, wie man Leute dazu bewegt sie zu benutzen. Die Webseite wird erst zum Schluss behandelt, da es eher als Klebstoff dient denn als eigenständig zu sehendes Hilfsmittel.

Sie können sich eine Menge Kopfschmerzen bei der Einrichtung dieser Hilfsmittel ersparen, mit der Hilfe von Hosting-Bündel: Ein Server der vorkonfigurierte Seiten und Vorlagen bereitstellt, sowie alle zugehörigen Hilfsmittel die man braucht um ein freies Software-Projekt zu betreiben. Siehe „Hosting-Pakete“ später in diesem Kapitel indem die Vor- und Nachteile von Hosting-Lösungen behandelt werden.