Software Entwicklung

Wie Freie Software entwickelt wird

Hamid Shefaat

 

1. Einleitung

2. Aufbau und Zweck der Freien Software Communities

3. wirtschaftliche Aspekte von Freier Software

4. Gesellschaftliche Aspekte der Freier Software

5. Politische Aspekte von Freier Software

 

1. Einleitung

Es vergeht kaum ein Tag ohne eine Nachricht über die Freier Software oder das Betriebssystem Linux . Die Regierungen von China und Japan entwickeln ihre eigene Freie Software, der Deutsche Bundestag ist auf Linux umgestellt und viele andere Länder der Welt planen oder sind dabei auf Freie Software umzusteigen. Die Popularität von Freier Software nimmt stetig zu. öffentliche Institutionen, ganzen Stadtverwaltungen bis hin zu großen Unternehmen oder gar einzelne Personen entscheiden sich für den Einsatz von Linux und Freier Software. Die Gründe für die Popularität reichen von kostensparendem Einsatz bis hin zur Stabilität des Betriebssystems Linux.

Viele nutzen allerdings Freie Software ohne zu wissen, dass sie ein „alter“ Freie Software User sind. So z. B. wenn der Internet Browser Mozilla (die kommerzielle Version heißt Netscape) benutzt; oder eine gerade aufgerufene Website wird mit sehr großer Wahrscheinlichkeit durch einen Apache Webserver zur Verfügung gestellt (der meist verwendete Webserver „Apache“ ist eine Freie Software initiiert von der Apache Foundation ). Die Inhalte der meisten Portale und datenbankbasierten Webseiten werden in der Freien Software Datenbank MySQL aufbewahrt und den Benutzern zur Verfügung gestellt. Programmiersprachen wie PHP, die das Darstellen von Ergebnissen in Form von HTML-Seiten ermöglicht, sind ebenfalls Freie Software.

Was also verbirgt sich hinter Freier Software? Ist das eine Art kostenlose Software? Warum ist diese denn kostenlos, wenn andere für die gleichen Programme viel Geld verlangen? Wer macht diese Software und wie finanziert sich die Arbeit, die hinter dieser zum Teil sehr aufwendigen Software steckt?

Vielleicht kann man das Phänomen Freie Software einfacher verstehen, wenn man dessen Grundidee nicht in der Informationstechnologie sucht, sondern auf einem ganz anderen Gebiet: nämlich dem Kochen!

Kochen ist eine der ältesten künstlerischen und gleichzeitig lebensnotwendigsten Beschäftigungen der Menschheit. Diese findet man in allen Kulturen und Gesellschaften und das schon seit sehr langer Zeit. Beim Kochen macht man sich das Wissen und die Erfahrungen Anderer zu Nutze und würzt diese mit eigener Fantasie. Dabei verwendet man gewisse Zutaten und kombiniert sie so gut wie möglich, damit es gut schmeckt. Der Schweinebraten und das Wiener Schnitzel sind genauso alte Rezepte wie der Kaiserschmarrn. D. h. beim Kochen nutzen wir ständig das Wissen von Anderen, vermischen es mit unserer Erfahrung und schaffen wir so neues und (teilweise) geschmackvolleres.

Freie Software zu produzieren ist wie Kochen nach einem Rezept, wobei auch beim Software schreiben eigene Erfahrungen und überlieferte Kenntnisse Anderer einfließen. Bei Freier Software „kocht“ man eben ein Programm nach „offenem Rezept“, im Gegensatz zu dem Geheimrezept bei der proprietären Software. Aber hier liegt der Unterschied zum Kochen: Im Gegensatz zum Kochen verderben viele Programmierer den Brei nicht (wie der Volksmund sagt), sondern verfeinern das „Essen“.

Ein wichtiger Unterschied zwischen Freier Software und der sog. proprietären Software ist, dass man bei Freier Software das „Kochrezept“ offen legt und sogar das Produkt der Öffentlichkeit zur Verfügung stellt.

Die wirtschaftlichen und gesellschaftlichen Folgen dieser Art Softwareentwicklung sind für die Zukunft entscheidend. Zum einen ist das Prinzip der Transparenz für die TeilnehmerInnen in einer der Freien Software Communities unabdingbar, weil der Erfolg von gegenseitigem Vertrauen innerhalb der Community abhängt, zum anderen ist das Prinzip der Basisdemokratie eine lebenswichtige Rolle, da man sich ja in den meisten Fällen innerhalb der Community nicht „persönlich“ kennt. In dieser Art des virtuellen Zusammenlebens spielen also die Prinzipien Transparenz und Demokratie eine entscheidende Rolle, was einen großen Einfluss auf die Struktur der Communities hat. Die Struktur in diesen Communities ist nicht hierarchisch und alle bestimmen den Kurs mit. Es wird meistens auf eine Kompromiss hinauslaufen und es gibt keine Chefinnen! (Details siehe Abschnitt „Aufbau der Freie Software Communities“).

 

2) Aufbau einer typischen Freie Software Community

Eine typische Freie Software Community wird üblicherweise durch eine Initiatorin/Initiator oder mehrerer Initiatorinnen oder Initiatoren gegründet. Dies geschieht manchmal aus dem Bedürfnis heraus eine neue Software für einen bestimmten Zweck zu entwickeln, wie z. B. eine Software die Termine verwaltet. Die Initiatorinnen sind meistens selbst erfahrene Programmiererinnen und können zeitlich oder auch fachlich dieses Problem nicht bewältigen. So starten sie ein Freie Software Projekt und laden andere Entwicklerinnen ein, mitzuarbeiten. Es genügt eine Internetadresse und eine Software die die Kommunikation über die Internetadresse abwickelt (Forum, FAQ, etc.). Es gibt allerdings auch zentrale Freie Software Projektbörsen wie die berühmte sourceforge.net, wo man eine kostenlose Möglichkeit finden kann, seine Projekte unterzubringen und Interessierte für sein Vorhaben zu finden.

Die typische Freie Software Community besteht aus:

– einem Kern „Core Team“, das das Projekt lenkt und organisatorische Aufgaben übernimmt,

– ein meist treues Entwicklungsteam, welches die meiste Entwicklungsarbeit leistet,

– und eine Userinnengemeinde, die durch den Einsatz der Software die aufgetretenen Fehler weitergibt, damit diese behoben werden oder aber auch neue Features und Anpassungen rein aus fachlicher Sicht fordert.

 

Es gibt zwei wesentliche Typen von Freie Software Communities:

Typ A

Der erste Typ ist die ursprüngliche Art von OSS Communities und wird meist von Einzelpersonen gegründet, die an feste Grundsätze glauben und auf soziale Aktivität und Gemeinschaftsgeist Wert legen. Diese Personen gründen die Freie Software Community um etwas gegen das Monopol der Softwarefirmen wie Microsoft zu unternehmen. Diese Absicht kann man als politisch bezeichnen, wobei der Fokus weiterhin auf Softwareentwicklung liegt.

Die bekanntesten Freie Software Communities von Typ A sind z.B. MySQL Datenbank, Apache, GNU, Linux, KDE etc.

Typ A Freie Software Communities Typ B Freie Software Communities

 

Typ B

Diese neue Art von Freie Software wird meist von einem Unternehmen gegründet. Dieses Unternehmen macht es aus seiner bis dahin lizenzpflichtigen Software Freie Software Software, wie z.B. bei OpenGroupware.de oder der SAP-Datenbank. Oder aber es wird ein komplett neues Projekt von einem Unternehmen gestartet mit dem Ziel das Produkt einer Community zu unterstützen, wie etwa beim Browser Mozilla.

Der entscheidende Unterschied zwischen Typ A und Typ B Communities ist, dass hinter dem Typ B meist ein großes Unternehmen steckt, das die Ziele angibt und finanzielle Unterstützung bietet.

Es gibt viele unterschiedliche Freie Software Lizenzformen wie z.B. General Public Licenses, die festlegen, wie und in welcher Form der Source Code der Software weitergegeben und verwendet werden darf. Diese sind sehr flexibel und erlauben es Unternehmen und EntwicklernInnen ihr eigenes Freie Software Lizenzmodell entwerfen und ihren eigenen Bedürfnissen anpassen.

 

3. Ökologischer Aspekt der Freien Software Bewegung

Eine wichtige Eigenschaft der Freien Software Bewegung ist der zum Teil sehr sorgfältige und intelligente Umgang mit Ressourcen, sowohl was den Umfang des Code als auch der menschlichen Ressourcen angeht. Das liegt daran, dass in der Regel bei einer Freien Software Community die Arbeiten nicht bezahlt werden und so als Freizeitaktivitäten zu bezeichnen sind. So ist man immer bemüht die Zeit effektiv zu nutzen, um bessere Ergebnisse zu erzielen. Diese Eigenschaft gepaart mit der Offenlegung der Sourcecode verhindert Doppelarbeit und ermöglicht, dass mit weniger Arbeit mehr Leistung erbracht wird. Die aus dieser Arbeitsform entstandene Methode der Softwareentwicklung (im Gegensatz zu den Entwicklungsabteilungen großer Softwarefirmen) verbindet Effizienz mit einem würdigen Umgangsform mit menschlichen Ressourcen.

Die Parallele zwischen ökologischem Denken und der Freien Software Bewegung kann man in der Art des Umgangs mit den vorhanden Ressourcen und der organischen Zusammensetzung der jeweiligen Bewegungen erkennen. Bei der ökologischen Denkweise geht man, sehr vereinfacht gesagt, von einem sorgfältigen Umgang mit der Natur und der Rohstoffe aus, ohne dabei nur die Belange der Industrie zu berücksichtigen. In der Freien Software Bewegung geht es um die Wiederverwendung der einmal geleisteten Arbeit. Hier wird die Code „Recycled“. Braucht man beispielsweise ein Programm, das die Verschlüsselung von Daten ermöglicht, kann man aufgrund der Offenlegung des Codes ein bereits vorhandenes Programm nehmen und dieses verbessern oder an seine eigenen Bedürfnisse anpassen.

 

4. Ökonomischer Aspekt der Freien Software Bewegung

Die Freien Software Communities sind in der Regel sehr flexibel und innovativ. Dadurch können sie in kürzester Zeit die Strategie ändern, die Entwicklung in eine andere Bahn lenken, neue Ressourcen mobilisieren und absolut zeitnah neue Produkte schaffen. Dies zeigt sehr eindrucksvoll die Entstehung des Betriebssystems Linux, das erst seit Anfang der 90er Jahre gestartet wurde, und zwar ohne die übliche finanzielle oder machtpolitische Lobby. Linux gilt jetzt als die schärfste Konkurrenz für den Softwaregiganten Microsoft, obwohl viele große Konzerne wie IBM schon lange versuchen, dieses Monopol im Bereich Betriebssystem zu brechen. Ein anderes Beispiel ist eine grafische Oberfläche von Linux – „KDE“ (ähnlich dem Windows aber mit mehr Features wie z B. Multidesktopfähigkeit etc.) – die innerhalb kürzester Zeit auf die Beine gestellt wurde und erfolgreich in das Linux Betriebssystem integriert wurde.

Quasi als Nebenprodukt ergeben sich bei der Freien Software neuartige Softwareentwicklungssysteme . Denn die Softwareentwicklungsabteilungen der großen Firmen entwickeln nach einer Vorgabe, die meist für einen rein kommerziellen Zweck gedacht ist. So finden sich dort auch die typischen Projektmanagement-Methoden wieder. Die Methoden des Projektmanagements sind in der Freien Software aber ganz andere.

Der Hauptunterschied besteht darin, dass man bei einem Freien Software Projekt den zeitlichen Verlauf des Projektes und der Ressourcenplanung sehr flexibel und dynamisch gestalten muss, da ja die Ressourcen freiwillige Arbeit leisten und manchmal durch berufliche oder familiäre Bindungen keine genaue Zeiteinteilung für OSS vornehmen können. Das verursacht, dass Freie Software Projekte schnell auf den Ausfall von Mitgliedern und neue Zeitvorgaben reagieren müssen. Die finanziellen Aspekte der Freien Software bringen auch neue Möglichkeiten und Unterschiede zu den herkömmlichen Methoden im PM mit. Während bei herkömmlichen Softwareprojekten ein festes Budget selbstverständlich gilt, ist bei einer Freien Software das Budget relativ ungenau und kann sich dem Verlauf des gesamten Projektes anpassen. Wird z.B. bei einer Freien Software die Perspektive sichtbar, dass diese Software bei einem Kunden eingesetzt werden kann, wenn sie zu einem bestimmten Zeitpunkt fertiggestellt wird, so wird in der Regel in der Freien Software Community sofort diskutiert ob man Personalressourcen mobilisieren kann um die Software rechtzeitig zu fertigen. So muss unter Umständen auch Geld investiert werden (z. B. in Personal in Form eines Unterauftrags), um den Zeitpunkt der Fertigung vorzuziehen. Natürlich treten auch in der herkömmlichen Softwareentwicklung solche Fälle auf, aber in der Freien Software ist sowohl die Häufigkeit als auch die Voraussetzungen generell anders.

In der genauen Betrachtung entdeckt man, dass die herkömmlichen Methoden mehr und mehr versagen je mehr die Komplexität der Projekte steigt.

Freie Software schafft Arbeitsplätze und zwar überall in der Welt. Fakt ist, dass viele der kleinen und mittelständischen SoftwareherstellerInnen in Europa Freie Software herstellen oder ihren KundInnen im Rahmen von Dienstleistungen anbieten. Freie Software ist ein Motor für die Entwicklung neuer Software-Industrien überall auf der Welt, insbesondere in Asiens und Süd-Amerikas Entwicklungs- bzw. Schwellenländern. Die Schaffung der Arbeitplätze hängt sehr stark von der Projektvergabe der AuftraggeberInnen (wie z.B. Kommunen, Städte, Regierung, Unternehmen) ab. Werden die Ausschreibungen in Portionen, also kleinen Auftragseinheiten vergeben, so ist die Ausführung auch für die kleinen Firmen geeignet und es entstehen viele sichere lokale Arbeitsplätze.

 

5. Gesellschaftlicher Aspekt der OSS Bewegung

Zusammenfassend kann man sagen, dass die Freie Software Bewegung ein nicht nur auf den IT-Bereich beschränktes Phänomen ist (hier wird mittlerweile die Freie Software auf Hardware ausgeweitet), sondern für sämtliche Gesellschaftsbereiche wie ökonomie, Politik und Sozialwesen von Bedeutung ist.

 

Ein interessanter Aspekt der Freien Software Bewegung ist die Tatsache, dass die Verbreitung von Freier Software den sogenannten Entwicklung- und Schwellenländer die Möglichkeit bietet, sich auf dem Gebiet Informationstechnologien und somit auch in anderen Bereichen wie der Politik, (teilweise unabhängig von Industrieländern), zu entwickeln. Das ermöglicht diesen Länder sich mit relativ wenig finanziellen Belastungen auf einen gleichwertigen technologischen Stand zu bringen.

 

Nicht zuletzt ist das Problem der Monopolstellung von Microsoft ein Innovationshindernis und gegen das Vielfaltprinzip. Die Selbstverständlichkeit, mit welcher die Monopolrolle von Microsoft resignierend angenommen worden ist, wäre in einem anderem Bereich wie z.B. einem essentiellen Lebensmittel wie Brot gar nicht denkbar. Bedeutet das doch, dass wir auf der ganzen Welt nur eine einzige Sorte Brot essen dürften und gar keine Wahl hätten zwischen Weißbrot oder Schwarzbrot zu entscheiden!

 

Wir müssen uns darauf einstellen, dass in der Informationsgesellschaft eine Monopolstellung unabhängig von den Produkten eine Gefahr für die Entwicklung der Gesellschaft darstellt. Die Folgen dieser Art der Entwicklung haben wir in der New Economy schon erlebt.

 

Einige Beispiele von erfolgreichen Freie Software Projekte:

 

1) Sourceforge.net : Internationale OSS Projektbörse www.sourceforge.net

2) Typo3: Content Management System www.typo3.org

3) Apache: Der Webserver www.apache.org

4) JBOSS: Applikationsserver www.jboss.org

5) Zope: Applikationsserver www.zope.org

6) OpenACS: Community System und Wissensmanagement www.OpenAcs.org

7) Dotlrn: E-Learning Software www.dotlrn.org

8) Linux: Betriebssystem – die Alternative zu Windows www.linux.org

Hamid Shefaat ist dipolmierter Physiker und freiberuflicher Open Source Integrator.

 

Originaltext stammt von „Open Mind – Open Source – Open Europe“ – Kampagne der Münchener und Wiener Grünen.