Die Entwicklung freier Software
Community-Entwicklungen
Diese Art der Entwicklung freier Software ist am häufigsten anzutreffen: Es beginnt damit, dass ein oder mehrere Programmierer ein Programm brauchen, das es nicht gibt. Also fangen sie an, zu programmieren und stellen dann ihr Ergebnis unter einer freien Lizenz zur Verfügung. Aus solchen Ein-Mann-Projekten können jedoch riesige Programme entstehen, in deren Entwicklung später auch Firmen einsteigen. Ein Beispiel für diese Art der Entwicklung ist der Linux-Kernel: 1990 vom finnischen Studenten Linus Torvalds begonnen, wird er heute von freien Hackern(absolut positiv gemeint!) und Firmen gleichermaßen entwickelt.
Untereinander kommuniziert wird über Mailinglisten, Chaträume, Instant Messaging oder während persönlicher Treffen auf Entwicklerkonferenzen.
Ordnung für den Ameisenhaufen
Um trotz der großen Entfernungen zwischen den Entwicklern einen reibungslosen Ablauf bei der Entwicklung zu garantieren, wurden im Laufe der Zeit einige Techniken entwickelt. Diese werden den Entwicklern freier Projekte meistens von Anbietern wie SourceForge, BerliOS, Savannah oder Gna! zur Verfügung gestellt. Dazu gehören:
Versionsverwaltung
Am wichtigsten sind dabei so genannte Versionsverwaltungssysteme. Diese stellen einen speziellen Server-Dienst zur Verfügung, über den berechtigte Entwickler neue Versionen von Dateien einpflegen können. Dazu bearbeitet der Entwickler zum Beispiel ein Stück Quellcode, eine Übersetzung oder eine Grafik und gibt danach die neue Version frei. Moderne Versionskontroll-Systeme sind dabei so gut, dass zwei Entwickler zur gleichen Zeit die selbe Datei bearbeiten können. Beim hochladen ("commit") werden dann die Änderungen beider Entwickler - sofern es keine Konflikte gibt - vollautomatisch in eine neue Version der Datei eingepflegt.
Zudem führen diese Systeme genau Buch über alle Änderungen, sodass erstens eine Kontrolle der Entwickler möglich ist und zweitens fehlerhafte Änderungen leicht wieder rückgängig gemacht werden können.
Beispiel für einen Entwicklungsprozess mit Versionsverwaltungssystem |
Gajim-Entwickler behebt einen Fehler über das Versionsverwaltungssystem |
Bug-Tracking
Freie Community-Projekte erlauben eine sehr viel direktere Kommunikation zwischen Anwender und Programmierer als andere Formen der Softwareentwicklung. Da aber ein User, der nichts mit dem Projekt zu tun hat, meist nicht weiß, welche Person für welchen Teil eines Programmes zuständig ist, verwalten die Projekte Fehlermeldungen und Wünsche nach neuen Funktionen - sogenannte "feature requests" - meist über Tracking-Systeme.
Dabei handelt es sich meistens um Anwendungen, die per Browser bedient werden (ähnlich unserem Wiki). Der Benutzer gibt seinen Namen und seine E-Mail-Adresse an und beschreibt z.B. den Fehler. Die Software kümmert sich dann darum, dass die zuständigen Leute informiert werden und vermittelt auch zwischen Programmierer und Nutzer, wenn zum Auffinden des Fehlers zum Beispiel zusätzliche Informationen nötig sind.
Wurde der Fehler schließlich gefunden und beseitigt, setzt der Programmierer den Status der Meldung auf "Fixed" und der Nutzer kann sich auf eine neue Version des Programms freuen
Übersetzung
Obwohl Entwickler freier Software selbst zum größten Teil Englisch sprechen, arbeiten sie hart daran, freie Software jedem zugänglich zu machen - also z.B. auch Deutschen, die keine Fremdsprache beherrschen. Daher wurden diverse Technologien entwickelt, die das Übersetzen von Anwendungen erleichtern, die bekannteste davon ist GNU gettext. Gettext bietet dem Übersetzer die Möglichkeit, über ein einfach zu bedienendes Programm nach und nach alle in einem Programm verwendeten Strings zu übersetzen - hat er seine Arbeit beendet, schickt er die übersetzte Datei zurück an die Entwickler, die sie in die nächste Version des Programmes einbinden.
Freigabe proprietärer Programme
Hierbei wird eine Software oft über Jahre hinweg als proprietäre Software in einem Unternehmen entwickelt. Aus irgendwelchen Gründen entscheidet sich die Firma dann, dass eine freie Lizenz sehr viel vorteilhafter wäre und veröffentlicht die nächste Version unter einer freien Lizenz. Häufig bleibt das Unternehmen dann aber dennoch stark in den Entwicklungsprozess integriert. Bekannte Beispiele: Mozilla (vormals Netscape), OpenOffice.org (vormals StarOffice) oder Blender (ein 3D-Animationsprogramm), welches für 100.000 Euro freigekauft wurde.




