Management eines OpenSource-Softwareprojektes am Beispiel von KDE  

Kalle Dalheimer  
 
 
 

RealVideo: Modem | ISDN    
 

abstract  

In diesem Papier beschreibe ich die Organisationsstrukturen eines  
OpenSource-Softwareprojektes, das international über das Internet  
verteilt zusammenarbeitet, am Beispiel des K Desktop Environments  
(KDE). Dazu gehe ich zunächst kurz auf die Ziele von KDE ein,  
bevor ich beschreibe, welche Techniken, Verfahren und Strategien  
verwendet werden, um ein solches Projekt zu organisieren und  
fokussiert zu halten.  
 
 

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:  

  • Ein in hohem Maße konfigurierbarer Fenstermananager (kwm), der sich sehr gut auch nur über die Tastatur bedienen läßt und mehrere virtuelle Desktops unterstützt.
  • Ein Client-Server-Dateimanager (kfm), der gleichzeitig als Web-Browser und als allgemeine Netzwerkbibliothek dient, die auch von anderen Programmen für den Netzwerk-transparenten Dateizugriff verwendet wird.
  • Eine Programmstartleiste, die Zugriff auf alle installierten KDE-Applikationen bietet, auf die virtuellen Desktops und auf die aktuell geöffneten Fenster, und die auch so konfiguriert werden kann, daß ein optimaler Zugriff auf die am häufigsten verwendeten Applikationen möglich ist.
  • Ein Kontrollzentrum, das grafische Dialoge für diverse Konfigurationseinstellungen in KDE bereitstellt. Mit KDE ist es damit nicht mehr - wie traditionell unter Unix üblich - notwendig, kryptische Konfigurationsdateien zu editieren.
  • Ein umfangreiches, HTML-basiertes Online-Hilfesystem, das Dokumentation in vielen Sprachen enthält.
  • Internationalisierung von Bildschirmtexten in über dreißig verschiedene Sprachen, darunter ``kleine'' Sprachen wie Mazedonisch, Isländisch und Bretonisch, aber natürlich auch alle Weltsprachen einschließlich Chinesisch (Mandarin).
  • Eine große Anzahl von Bildschirmschonern.
  • Eine Vielzahl von Produktivitätsapplikationen.
  • Diverse Multimedia-Applikationen wie CD- oder MIDI-Spieler.
  • Netzwerk- und Internet-Programme wie E-Mail-Programme, News-Programme und Netzwerk-Verwaltungswerkzeuge.
  • Eine große Anzahl kleinerer Spiele.
  • Betrachter für diverse Grafikformate (einschließlich PostScript und Fax G3).
Alle diese Programme folgen den gleichen Stilrichtlinien und sind in den Desktop integriert. Das bedeutet unter anderem, daß sie Drag-and-Drop wo immer möglich und sinnvoll unterstützen, man mit ihnen ohne Intervention des Benutzers sowohl auf lokale als auch entfernte Dateien zugreifen kann, sie die gleiche Hilfe-Anwendung verwenden und über das KDE-Kontrollzentrum konfiguriert werden kann.  

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:  

  • kdesupport: Hilfsbibliotheken, die nicht von den KDE-Entwicklern selbst geschrieben worden sind, die aber für die Funktionsfähigkeit des KDE-Desktops notwendig sind.
  • kdelibs: Die grundlegenden KDE-Bibliotheken, die jede KDE-Applikation verwendet. Diese Bibliotheken enthalten den KDE-Kern, eine Vielzahl von zusätzlichen Oberflächenelementen (darunter das Element zur Anzeige von HTML-Dokumenten), den Netzwerk-Code und den Code für den Zugriff auf Audio-Hardware.
  • kdebase: Die grundlegenden Applikationen wie der Fenstermanager, die Programmstartleiste und der Dateimanager, die zu jedem KDE-System integral hinzugehören.
  • kdegames: Einige kleinere Spiele.
  • kdegraphics: Programme rund um Grafik.
  • kdeutils: Desktop-Werkzeuge.
  • kdemultimedia: Multimedia-Programme.
  • kdenetwork: Netzwerk- und Internet-Programme.
  • kdeadmin: Werkzeuge für Systemverwalter.
Neben diesen Paketen gibt es eine Vielzahl von CVS-Modulen für Software, die sich noch im Zustand der Entwicklung befindet, darunter auch das KOffice.  

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.