Management
eines OpenSource-Softwareprojektes am Beispiel von KDE
abstract In diesem Papier beschreibe
ich die Organisationsstrukturen eines
Was ist KDE? Wärend Unix allgemein als das stabilste, flexibelste Betriebssystem gilt, war es in der Vergangenheit nicht gerade für Endanwender geeignet. Es hat mehrere Versuche gegeben, das zu ändern. Dazu gehören unter anderem das Common Desktop Environment CDE und die vorkonfigurierten Desktop-Einstellungen von diversen Linux-Distributoren. All diese haben aber das Bedürfnis nach einem konsistenten, integrierten, benutzerfreundlichen Desktop nicht befriedigen können. An dieser Stelle versucht das KDE-Projekt anzusetzen. Es stellt einen Desktop bereit, der die traditionelle Stabilität und Flexibilität von Unix-Systemen mit der einfachen Bedienbarkeit von heutigen Desktop-Betriebssystemen wie Windows 9x oder MacOS zu kombinieren, um dem Anwender so zu einer höheren Produktivität zu verhelfen. Das erreicht KDE unter anderem durch eine vollständige Internet-Integration - so kann unter anderem auf Dateien auf entfernten FTP- und WWW-Servern so zugegriffen werden, als lägen Sie direkt in einem lokalen Dateisystem. Außerdem stellt KDE ein Programmgerüst bereit, was zu einem konsistenten Look-and-Feel des Desktops und der auf diesem laufenden Applikationen führt. Weiterhin gibt es in KDE HTML-basierte Online-Hilfe und eine vollständige Drag-and-Drop-Integration. KDE unterstützt herkömmliche Applikationen: Alle Nicht-KDE-Applikationen für Unix laufen problemlos auf einem KDE-Desktop, und auch die meisten KDE-Applikationen funktionieren auf anderen Desktops, auch wenn in diesen Fällen natürlich die Konsistenz verloren geht. KDE ist frei verfügbar
und läuft derzeit auf einer Vielzahl von Unix-Systemen, darunter Solaris,
Irix, HP-UX, AIX, Linux und diversen BSD-Varianten. Die gesamte Entwicklung
und Verwaltung findet über das Internet mit Werkzeugen wie Mailing-Listen,
verteilten Versionskontrollsystemen und diversen frei verfügbaren
Programmen zur Konfigurationsverwaltung statt.
Bisher erreichte Ziele Im Juli 1998 hat das KDE-Team die Version 1.0, im Januar 1999 die Version 1.1 und im Mai 1999 die Version 1.1.1 freigegeben. Diese Versionen sind bereits in eine Vielzahl von Linux-Distributionen (darunter SuSE Linux, Caldera OpenLinux und DLD Linux) integriert und stellen bereits für viele Privatanwender, Firmen und staatliche Stellen den Desktop da, auf dem die tägliche Arbeit erledigt wird. Die wichtigsten Komponenten in der Version 1.1 sind:
All diese Applikationen haben
einen Stabilitätsgrad erreicht, den Unix-Anwender seit langem erwarten,
der aber für Windows-Benutzer oft erstaunlich ist.
Pläne für die Zukunft Das KDE-Team hat inzwischen begonnen, einige der Kern-Komponenten des Desktops neu zu schreiben, darunter die Komponente zum Anzeigen von HTML-Seiten, die dann auch Java und JavaScript unterstützen wird, und die Netzwerk-Bibliotheken. Diese Reimplementierung wurde als notwendig betrachtet, um KDE noch robuster zu machen und einige Entwurfsfehler zu beseitigen, die in der Frühzeit der Entwicklung gemacht wurden. KDE 2.0 (wie die nächste Version voraussichtlich genannt werden wird) wird aber auch viele neue Features haben. Dazu gehören Unicode-Unterstützung, um KDE für Anwender außerhalb des europäisch-nordamerikanischen Kulturkreises geeigneter zu machen, sowie die Unterstützung sogenannter Themes, kompletter Einstellungspakete, mit denen das Aussehen des gesamten Desktops mit einem Mausklicks massiv verändert und den Wünschen des jeweiligen Benutzers angepaßt werden kann. Einige weitere Anwendungen wie das E-Mail-Programm werden ebenfalls neu geschrieben. Darüber hinaus wird derzeit
sehr viel Arbeit für die Implementierung des KDE-eigenen Office-Pakets
verwandt, das ebenfalls Anfang nächsten Jahres verfügbar sein
sollte.
Die Projektorganisation KDE ist ein OpenSource-Projekt, das von Freiwilligen auf der ganzen Welt betrieben wird. Das bedeutet unter anderem, daß der gesamte Quellcode des KDE-Projekts im Internet und auf CDs diverser Distributoren frei verfügbar ist. Jeder qualifizierte Entwickler kann an der Entwicklung teilnehmen, solange er in irgendeiner Form über einen Internet-Zugang verfügt. Alle Entwickler sind eingeladen und aufgefordert, nicht nur weitere Programme, Werkzeuge und Applikationen zu schreiben, sondern auch die bereits existierenden Programme ständig zu verbessern. Die Mitglieder des KDE-Projektes organisieren sich über mehrere Mailing-Listen, die zu einem großen Teil auf einem zentralen KDE-Server an der Universität Tübingen laufen. Die dafür notwendige Hardware wurde von einem Computerhersteller gespendet. Zu den Mailing-Listen gehören eine Liste für Anwender, auf denen sich die Anwender gegenseitig selbst helfen, und die auch von den Entwicklern mitgelesen wird, um gegebenenfalls Hilfestellung leisten zu können; eine Liste für Entwickler, für die Schreibberechtigung auf Anfrage erteilt wird und die für Fragen rund um Entwurf und Entwicklung gedacht ist; eine Liste für die Autoren und Übersetzer der Dokumentation; eine Liste für Lizenzfragen und schließlich eine geschlossene Mailing-Liste, auf dem das sogenannte Kern-Team die allgemeine Richtung von KDE sowie Fragen des Marketings und der Öffentlichkeitsarbeit diskutiert. Aufnahme in das Kern-Team geschieht aufgrund von fortwährenden Verdiensten um die Weiterentwicklung von KDE. Der Quellcode selbst wird zentral in einem CVS-Repository an der Medizinischen Universität zu Lübeck gelagert. CVS (``Concurrent Version System'') ist ein sogenanntes Quellcode-Verwaltungssystem, das den gleichzeitigen Zugriff von mehreren Entwicklern auf den Quellcode ermöglicht und mögliche Konflikte semiautomatisch auflöst. Jeder Entwickler, Übersetzer und Dokumentationsautor kann auf Anfrage Schreibzugriff auf das CVS-Repository bekommen; es wird aber stillschweigend davon ausgegangen, daß jeder nur die Teile ändert, für die er als Verwalter oder Entwickler vorgesehen ist. Das Repository ist derzeit in neun sogenannte Pakete aufgeteilt, die auch in den offiziellen KDE-Distributionen wiederzufinden sind. Es handelt sich im einzelnen um die folgenden Pakete:
Neben den eigenen Bibliotheken verwendet KDE die C++-Klassenbibliothek Qt der norwegischen Firma Troll Tech AS, die für OpenSource-Entwicklung auf Unix-Systemen zur freien Verfügung steht. Die Wahl dieser Bibliothek wird von den Entwicklern als ein zentraler Faktor für den Erfolg von KDE angesehen, weil Qt sowohl sehr vollständig als auch sehr stabil ist, und die Entwickler eine äußerst gute Unterstützung bieten. Die Verwaltung einer Codebasis von etwa zwei Millionen Codezeilen, die aktiv von mehr als zweihundert Entwicklern in diversen Teilen der Welt - wie etwa Deutschland, Norwegen, USA, Kanada, Argentinien, Namibia und Australien - gepflegt werden, ist eine sehr umfangreiche und komplexe Aufgabe, die nur durch fortgeschrittene CASE-Software wie das Concurrent Version System CVS und zuverlässige Software zum Betreiben von Mailing-Listen möglich ist. Aber auch der menschliche Aspekt darf nicht unterschätzt werden: In einem OpenSource-Projekt, in dem fast alle Entwickler, Übersetzer und Dokumentationsautoren in ihrer Freizeit arbeiten, ist die Motivation der einzelnen Projektmitglieder eine der Hauptaufgaben. Der wichtigste Motivationsfaktor ist natürlich der gemeinsame Erfolg, aber die Mitglieder des Kern-Teams müssen auch sicher stellen, daß die Arbeit jedes einzelnen entsprechend gewürdigt wird, und daß die Leute, deren Kenntnisse und Qualifikationen gut zusammenpassen, zueinandergebracht werden, damit sie am gleichen Teilbereich des Projektes arbeiten können. Gleichwohl sucht natürlich jeder Projektteilnehmer seinen Wirkungskreis selbst aus; das Kern-Team kann und will nur Anregungen geben, wo Mithilfe am dringendsten gebraucht wird. Einer der wichtigsten Gründe für den Erfolg von KDE, eine ständig wachsende Zahl engagierter Entwickler anzuziehen, liegt in den Bibliotheken, die es möglich machen, attraktive, mit vielen Features versehene Applikationen zu schreiben, ohne die umfangreichen Projektkenntnisse zu haben, über die nur die erfahrenen Entwickler verfügen. Beispielsweise bekommen KDE-Entwickler ohne eine einzige eigene Codezeile Laufzeitkonfiguration von Farben und Widget-Stilen für ihre Applikation frei Haus geliefert, und die Integration von Drag-and-Drop oder Netzwerk-transparentem Dateizugriff ist ebenfalls mit nur wenigen Codezeilen möglich. Damit macht KDE den Einstieg in die Programmierung von Anwendungen mit grafischer Benutzeroberfläche deutlich einfacher. KDE-Entwickler müssen immer noch über überdurchschnittliche Kenntnisse verfügen, aber sie können diese zu einem großen Teil während der Arbeit an ihrem Teilprojekt erwerben, was ganz offensichtlich viel motivierender ist, als sich erst lange mit den Strukturen vertraut machen zu müssen, bevor man in die eigentliche Entwicklungsarbeit einsteigen kann.
|