Open Source im Unternehmen/ Open-Source-Software und Softwaremigration
Lizenzmodelle
[Bearbeiten]Unter Software wird eine Sammlung von zusammenhängenden Instruktionen verstanden, die auf einem Computer ausgeführt werden. Software ist die Schnittstelle zwischen Benutzer und Computer und bildet damit eine Brücke zwischen Mensch und Maschine.[1] Bezogen auf den Anwendungsbereich wird in Systemsoftware (z. B. Betriebssystem, Schnittstellentreiber) und Anwendersoftware (z. B. Textverarbeitung, Datenbanken) unterschieden[2]. Diese funktionale Differenzierung ist unabhängig von zugrunde liegenden Lizenzmodellen und den Entwicklungsformen.
Etwas zu produzieren, das Produkt kostenlos zur Verfügung zu stellen und darüber hinaus keine weiteren kommerziellen Absichten mit dem Produkt zu verfolgen, ist ein Ansatz, der mit dem unternehmerischen Gedanken der Gewinnmaximierung nicht konform geht. Genau dieser Gedanke bildet jedoch den Ansatz von Free Software bzw. Open-Source-Software.
Als einer der Begründer der Freie-Software-Bewegung gilt Richard Stallman. Für ihn ist die kostenlose Weitergabe von Software eine moralische Entscheidung.[3] September 1983 rief er das GNU-Projekt ins Leben. GNU ist ein Akronym und steht für „GNU is not Unix“. Ziel damals war es, ein vollständiges, Unix-artiges Betriebssystem zu entwickeln, das „freie Software“ sein sollte. Für Richard Stallman und das GNU-Project wurde „frei“ dabei eher im Sinne von „freien Gedanken“ als beispielsweise „freiem Eintritt“ verstanden. Daraus ergab sich folgende Definition: „Freie Software bedeutet die Freiheit des Benutzers, die Software zu benutzen, zu kopieren, sie zu vertreiben, zu studieren, zu verändern und zu verbessern.“[4] Diese Freiheit setzt die freie Verfügbarkeit des Quellcodes voraus.
Aus der Definition resultiert die Gefahr, dass sich Dritte die Eigentumsrechte aneignen und damit Freiheiten eliminieren können. Um dem entgegenzuwirken, wurde eine Lizenz entwickelt, die eine willkürliche Einschränkung wirkungsvoll verhindert: die GNU General Public License, kurz GPL. Mit dieser Lizenz wurde das Copyleft begründet. Im Gegensatz zum Copyright wird hiermit verhindert, dass sich ein Mitentwickler und andere Personen Eigentumsrechte aneignen können. Die Freiheiten der Software werden so auf Dauer weitervererbt. Neben der GPL gibt es eine große Menge anderer Lizenzen, die der Definition von Free Software genügen, jedoch ist die GPL die dominierende. Von derzeit über 53.000 erfassten Projekten unter Open-Source-Lizenzen stehen rd. 70 % unter der GPL.[5]
Obwohl die Entwickler freiwillig an den Projekten teilnehmen, keine – außer einer persönlichen – Verpflichtung besteht und die Programme kaum kommerziell vermarktet werden, sind in den Bereichen System- und Anwendersoftware viele unterschiedliche Open-Source-Lösungen verfügbar. Ursächlich kann hierfür vor allem das Wachstum des Internets – das die Basis für die Entwicklung von quelloffener Software darstellt – angeführt werden. Jedoch wurde in den vergangenen Jahren das Wachstum und die entstehende Software von großen Teilen der Wirtschaft kaum ernst genommen bzw. überhaupt registriert. Der Einsatz von quelloffener Software geschah in den Anfängen durch die Verantwortlichen daher eher verdeckt.[6]
Im Jahre 1998 kündigte Netscape an, den Quellcode ihres Webbrowsers frei zu geben.[7] In den Entwicklerkreisen von Free Software wurde in dieser Aktion die Chance gesehen, Aufmerksamkeit und Anerkennung für die Vorteile des offenen Entwicklungsprozesses zu erlangen.[8] Der erste Schritt war die Abkehr vom emotional negativ besetzten Begriff Free Software. Die Open Source Initiative (OSI) wurde gegründet und der Begriff Open-Source-Software definiert und eingeführt. Die Definition legt die Rahmenbedingungen für unterschiedliche Lizenzen fest. Erfüllt eine Softwarelizenz die Anforderungen der Open-Source-Definition, kann sie von der OSI zertifiziert werden.
Die Differenzierung zwischen der Open-Source-Definition und der Free-Software-Definition weist auf mögliche Unterschiede hin, die aber eher marginaler Natur sind. Bruce Perens, von dem die Open-Source-Definition stammt, sieht diese als Derivat der Free-Software-Definition an.[9] Da es keine Einschränkungen im Untersuchungsgegenstand gibt, werden im weiteren die Begriffe Open-Source-Software und Free Software synonym verwendet.
Im Gegensatz zu quelloffener Software steht proprietäre Software. Unter proprietärer Software werden solche Computerprogramme verstanden, welche durch restriktive Lizenzbedingungen keine umfassende Nutzung der Software erlauben und bei welchen der Quellcode nicht frei verfügbar ist.[10] Sie steht im Eigentum von Unternehmen oder Personen. Kopieren, Verändern und Weiterverteilen sind in der Regel untersagt bzw. nur mit Erlaubnis des Lizenzgebers gestattet. Die Gestattung erfolgt in der Regel durch Bezahlung von Lizenzgebühren.
Somit ist der Unterschied zwischen proprietärer und quelloffener Software nicht technischer Natur, sondern im Wesentlichen im zugestandenen Umfang der Nutzungsrechte zu finden.[11] Proprietäre Software stellt durch ihre Lizenzbedingungen gleichsam ein Komplementär zur quelloffenen Software dar.
Neben den hier näher betrachteten Lizenzen für Open-Source-Software und proprietäre Software gibt es weitere Lizenzen. So darf Freeware unentgeltlich eingesetzt, vervielfältigt und verbreitet werden. Hier wird der Begriff „free“ im Sinne von kostenlos verwendet. Die Offenheit des Quellcodes ist damit nicht verbunden. Shareware gleicht eher proprietärer Software. Die Ausnahme ist, dass der Eigentümer nur unter bestimmten Nutzungsbedingungen ein Entgelt verlangt, beispielsweise nach einer festgelegten Nutzungsdauer, zum Freischalten beschränkter Funktionen oder beim nicht-privaten Einsatz. Bei Public Domain Software verzichtet der Hersteller auf jegliche ihm zustehende Urheberrechte.
Entwicklungsformen
[Bearbeiten]Der zweite wesentliche Unterschied zwischen proprietärer und quelloffener Software ist die Vorgehensweise bei der Entwicklung.
Erstentwicklung, Veränderung und Verbesserung einer proprietären Software orientieren sich primär an Kundenwünschen, die meist mittels Marktanalysen identifiziert werden. Damit soll sichergestellt werden, dass für den Bedarf produziert wird und der Hersteller auf dem Markt bestehen kann.[12] Das Prinzip der Gewinnmaximierung ist das treibende Element.
Die Softwareerstellung läuft vereinfacht in zwei Phasen ab, die Entwicklungsphase und die Testphase.[13] Aufgrund der Komplexität wird für die Entwicklungsphase in der Regel eine Projektstruktur angewendet. Das Projekt wird sinnfällig in verschiedene Einheiten aufgeteilt und die Aufgaben auf die jeweiligen Entwickler verteilt. Jeder Mitarbeiter hat zugewiesene Aufgaben und muss diese im Rahmen eines Projektplans bis zu einem bestimmten Zeitpunkt erledigt haben. Ein Projektmanager steuert den Prozess und verteilt die notwendigen Ressourcen. Bevor die Software zum offiziellen Verkauf herausgegeben wird, durchläuft sie eine Testphase. Eine Beta-Version wird erstellt und Anwendern zum Test zur Verfügung gestellt. Fehler werden dem Softwareunternehmen gemeldet und ggf. korrigiert. Erst danach wird die Software zum Verkauf auf dem Markt freigegeben.
Von diesem eher technisch orientieren Ablauf wird in der Praxis jedoch oft abgewichen. Insbesondere erzeugen Markterfordernisse Druck auf den Veröffentlichungstermin, beispielsweise wenn die Möglichkeit besteht, durch eine frühere Veröffentlichung strategische Vorteile gegenüber einem Mitbewerber zu sichern. Der Entwicklungsprozess wird daher primär durch den angekündigten Erscheinungstermin bestimmt.
Ein Softwarehersteller bietet häufig neben der eigentlichen Software auch deren Einführung ins Unternehmen, Schulungen der Nutzer sowie Support im laufenden Betrieb an. Insbesondere bei komplexeren Programmen, wie Betriebssystemen, Datenbanken und Warenwirtschaftsprogrammen werden diese Dienstleistungen auch von Dienstleistern angeboten, die in die Entwicklung der Software nicht eingebunden sind.
Der Entwicklungsprozess von quelloffener Software unterscheidet sich in vielerlei Hinsicht von der oben beschriebenen Vorgehensweise. So wird der Grundstein eines Open-Source-Projektes in den meisten Fällen damit gelegt, dass jemand ein technisches Problem hat.[14] Entweder existiert für diese Problemstellung kein Programm oder vorhandene Programme erfüllen nur unbefriedigend die gestellten Anforderungen. Individuelles Interesse an Problemlösungen, technische Herausforderungen und die Anerkennung innerhalb der weltweit verteilten Entwicklergemeinde sind die wichtigsten Anreize für die Beteiligung.[15] Im Gegensatz zur Kundenorientierung bei der Entwicklung von proprietärer Software, steht damit beim Open-Source-Modell eine Entwicklerorientierung im Vordergrund.[16]
Meist wird der erste lauffähige Programmentwurf über das Internet weltweit frei zugänglich gemacht. Das ist die zentrale Voraussetzung für den weiteren offenen Entwicklungsprozess. Nach der Veröffentlichung stoßen meist weitere Programmierer hinzu, die vergleichbare Problemstellungen oder einfach nur Interesse an der Problemlösung selbst haben. Sie bringen ihre persönlichen Ressourcen Zeit und Wissen ein, um den Code zu verbessern oder um weitere Features einzuarbeiten.[17] Eine wichtige Voraussetzung für den weiteren Erfolg in der Entwicklergemeinschaft ist die schnelle Einarbeitung von Verbesserungs- und Erweiterungsvorschlägen verbunden mit rasch aufeinander folgenden Veröffentlichungen der neuen Programmversionen. Um die Effekte des parallelen Arbeitens der weltweit verstreuten Entwickler nutzen zu können, sind die schnellen Veröffentlichungen notwendig.[18]
Mit der Zahl der beteiligten Entwickler steigt der Koordinierungs- und Steuerungsbedarf. Erschwert durch die weltweite Verteilung der Programmierer und den dadurch mangelnden Kontakt, muss der Entwicklungsprozess anders als in einem abgeschlossenen Unternehmen aufgebaut werden. Um die Aufgaben besser verteilen und koordinieren zu können, sind Open-Source-Projekte stark modular aufgebaut. Meist bildet sich ab einer bestimmten Projektgröße ein Core-Team, das die zentrale Steuerung übernimmt. Größere Projekte werden wiederum in Einheiten aufgeteilt, die von einem Maintainer betreut werden. In der überwiegenden Zahl der Open-Source-Projekte ist dies der Initiator des Projektes. Dem Maintainer fallen unterschiedliche Aufgaben zu, abhängig von der Projektphilosophie: Überprüfung und Entscheidung über den Einsatz von Code-Beiträgen, Überwachung des Zeitplans für die Veröffentlichung der Software, Ansprechpartner für die Entwickler etc.[19]
Im Gegensatz zum Entwicklungsprozess von proprietärer Software sind hierarchische Strukturen mit Weisungsrechten bei Open-Source-Projekten unbekannt. Teilaufgaben werden entweder spontan von einem Entwickler freiwillig aufgenommen oder sie werden in gegenseitiger Abstimmung zugeordnet. Die Aufgaben entstehen auch eher durch Vorschläge der Projektmitglieder oder aus der gemeinsamen Diskussion heraus, als aus einem Projektplan.[20]
Die Software steht nach Veröffentlichung jedem Interessenten zur Nutzung zur Verfügung. Somit laufen Entwicklungs- und Testphase nicht mehr sequentiell nacheinander ab, sondern parallel nebeneinander her. Das Programm wird nach Veränderung sofort veröffentlicht und kann wieder getestet werden.
Von Beginn des GNU-Project an waren – bis vor wenigen Jahren – nur freiwillige Programmierer beteiligt. Meist waren es hauptberufliche Entwickler, die jedoch in ihrer Freizeit weiter programmierten. Seit geraumer Zeit gibt es auch zahlreiche Projekte, an denen verschiedene große Softwarehäuser beteiligt sind.[21] IBM beispielsweise arbeitet am Webserver Apache und am Betriebssystem GNU/Linux mit.[22] Hewlett Packard unterstützt die Portierung von GNU/Linux auf den IA64.[23] Mittlerweile stellen Softwareunternehmen auch ihre vormals proprietäre Software unter Open-Source-Lizenzen. Das wohl bekannteste Beispiel ist, neben dem Internetbrowser von Netscape, die Officesuite StarOffice, die als OpenOffice quelloffen zur Verfügung steht.[24]
Softwaremigration
[Bearbeiten]Unter Migration ist die Umstellung eines Systems auf ein anderes zu verstehen. Sie kann sich sowohl auf die gesamte EDV als auch auf Einzelbereiche beziehen. Es können Server und Arbeitsplatzrechner betroffen sein, eines von beiden oder auch lediglich einzelne Softwareprodukte.[25]
Migrationen können verschiedene Ursachen haben. In vielen Fällen ist es der natürliche Lebenszyklus einer Software, der zum Beispiel durch Anpassungen an sich verändernde technische Anforderungen und durch neue Kundenwünsche initiiert wurde. Weitere Anlässe können sich verändernde betriebliche Anforderungen sein, Unzufriedenheit über die verfügbaren Funktionen oder ein umständlicher und damit kostenintensiver Programmablauf.
Zwei Migrationsformen können unterschieden werden, abhängig davon, welche Beziehungen zwischen der vorhandenen und der neuen Software existieren. Ist die neue Software eine Nachfolgegeneration, wird von einer fortführenden Migration gesprochen. Wird zu einer Software gewechselt, die nur noch vergleichbare Funktionen hat, handelt es sich um eine ablösende Migration.[26]
Eine Migration kann unabhängig davon, ob sie fortführend oder ablösend ist schnell oder sanft umgesetzt werden. Eine schnelle Migration – in einem Guss – empfiehlt sich dann, wenn bereits genügend Wissen über die Software im Unternehmen vorhanden ist und die Auswirkungen der Migration auf die IT-Struktur leicht handhabbar ist. Ist das Know-How hingegen erst noch aufzubauen, sowie die Nutzer allmählich mit der neuen Technik vertraut zu machen, ist eine sanfte Migration vorzuziehen. Diese setzt sich aus Teil- und/oder punktuellen Migrationen zusammen.[27]
Quellen
[Bearbeiten]Die zitierten Quellen sind im Literaturverzeichnis zu finden.
- ↑ Vgl. Ernst, H.: Informatik, 2003, S. 310.
- ↑ Vgl. Ernst, H.: Informatik, 2003, S. 311.
- ↑ Vgl. auch Stallmann, R.: Movement, 1999, o. S.
- ↑ Free Software Foundation: Definition, 2002, o. S.
- ↑ Vgl. SourceForge.net: License, 2004, o. S.
- ↑ Vgl. auch Comerford, R.: Path, 1999, S. 30.
- ↑ Vgl. auch Netscape: Announces, 1998, o. S.
- ↑ Vgl. auch Open Source Initiative: History, 2004, o. S.
- ↑ Vgl. Perens, B.: Definition, 2004, o. S.
- ↑ Vgl. Widmer, M. J.: Urheberrecht, 2003, S. 39.
- ↑ Vgl. auch Widmer, M. J.: Urheberrecht, 2003, S. 36.
- ↑ Vgl. auch Kooths, S./Langenfurth, M./Kalwey, N.: Bewertung, 2003, S. 4.
- ↑ Vgl. Leiteritz, R.: Geschäftsmodelle, 2002, S. 9.
- ↑ Vgl. Berlecon Research GmbH: Strategien, 2004, S. 37.
- ↑ Vgl. auch Kooths, S./Langenfurth, M./Kalwey, N.: Bewertung, 2003, S. 3.
- ↑ Vgl. auch Kooths, S./Langenfurth, M./Kalwey, N.: Bewertung, 2003, S. 4.
- ↑ Vgl. auch Grassmuck, V.: Gemeineigentum, 2002, S. 237.
- ↑ Vgl. auch Brügge, B. u. a.: Ökonomische Analyse, 2004, S. 81.
- ↑ Vgl. auch Ettrich, M.: Koordination, 2004, S. 181.
- ↑ Vgl. auch Seifert, T./Wieland, T.: Prerequisites, 2003, o. S.
- ↑ Vgl. auch United Nations: Developement, 2003, S. 107.
- ↑ Vgl. IBM: Projects, 2004, o. S.
- ↑ Vgl. Hewlett Packard: HP & Open Source, 2004, o. S.
- ↑ Vgl. OpenOffice: OO, 2004, o. S.
- ↑ Vgl. auch Bundesministerium für Wirtschaft und Technologie: Leitfaden, 2001, o. S.
- ↑ Vgl. auch Bundesministerium des Inneren: Migrationsleitfaden, 2003, S. 24.
- ↑ Vgl. Bundesministerium des Inneren: Migrationsleitfaden, 2003, S. 17.