Das Leben und die Zeiten von Open-Source-Gemeinschaften
Open-Source-Code bildet den Kern vieler wichtiger Softwarelösungen, auf die große Unternehmen, Regierungen und sogar Privatanwender angewiesen sind. Man sollte meinen, dass solch kritischer Softwarecode in einer hochgradig koordinierten Weise entwickelt und mit erheblichen Investitionen unterstützt wird.
Aber die Wahrheit ist viel interessanter - und sogar seltsam, wenn man wirklich darüber nachdenkt. Ein Großteil des wichtigen Software-Codes, von dem die Welt abhängt, wurde von einer Gemeinschaft von Freiwilligen, die ihre Zeit unentgeltlich zur Verfügung gestellt haben, in einer Art Flickenteppich zusammengestellt.
Die Rede ist natürlich von der Open-Source-Softwaregemeinschaft. Es ist eine komplexe Gemeinschaft mit komplexen Interaktionen - einschließlich manchmal schwieriger Beziehungen zu kommerziellen Anbietern.
In diesem Artikel nehmen wir diese Gemeinschaft genauer unter die Lupe. Wie hat sich die Open-Source-Gemeinschaft entwickelt, und warum gibt es sie? Wir gehen auch auf einige der Herausforderungen ein, mit denen die Open-Source-Gemeinschaft konfrontiert ist, wie z. B. die Schwierigkeiten bei der Verwaltung einer Vielzahl von Mitwirkenden.
Inhalt
- Die Wurzeln der Open-Source-Gemeinschaft
- Die Kathedrale und der Basar
- Die Tragödie der Allmende
- Open-Source-Governance und Entscheidungsfindung
- Kommerzielle Unternehmen und Open-Source-Gemeinschaften
- Die Bedeutung von Open Source für die IT-Branche
Die Wurzeln der Open-Source-Gemeinschaft
Beginnen wir mit einer formalen Definition von Open-Source-Gemeinschaften. Laut Brian Proffitt, der für TechRadar schreibt:
Open-Source-Gemeinschaften sind halb-organisierte Sammlungen von Mitwirkenden an einem Projekt, in der Regel Software. Diese Gemeinschaften bringen Menschen mit gemeinsamen Interessen zusammen, um gemeinsam etwas zu entwickeln, das mit jedem innerhalb oder außerhalb der Gemeinschaft geteilt werden kann. Und fast immer sind Open-Source-Projekte das Ergebnis von verteilten Gemeinschaften.
Es ist schwer zu sagen, wo die erste Open-Source-Gemeinschaft entstanden ist. Freiwillige Beiträge zur Software gibt es wahrscheinlich schon seit den Anfängen der Computerforschung, aber in der Geschichte der Open-Source-Entwicklung gibt es ein paar Anhaltspunkte.
Zum Beispiel Richard M. Stallman, zum Beispiel. Die Geschichte besagt, dass eines der ersten Beispiele für Open-Source-Zusammenarbeit aus dem Bedürfnis heraus entstand, einen Weg zu finden, wie Forscher gewarnt werden können, wenn ein Druckerstau dazu führt, dass ihre Ausdrucke in der Warteschlange stehen.
Die Forscher schrieben den erforderlichen Code, der auch funktionierte, aber als ein neuer Drucker mit proprietärem, quelloffenem Code ausgeliefert wurde, auf den sie keinen Zugriff hatten, wurden sie wieder auf den Anfang zurückgeworfen, weil der Drucker klemmte.
Damit war ein Stein ins Rollen gebracht, und im Laufe der Zeit bemerkte Stallman immer mehr Beispiele dafür, wie proprietäre Software mit geschlossenen Lizenzen den Fortschritt verhinderte. Er beschloss, das das GNU-Projekt zu starten ins Leben zu rufen, das auch heute noch ein wichtiger Eckpfeiler der Open-Source-Software ist, unter anderem dank der GNU General Public License (GPL).
Stallmans Geschichte ist einer der ersten Schritte auf dem Weg zur Entwicklung von Open Source als einer Gemeinschaftsbewegung. Sie veranschaulicht, wie das Bedürfnis nach Einsicht, Kontrolle und Demokratie rund um den Quellcode die Bildung einer Gemeinschaft inspirierte. Stallmans Ziel war es, ein komplettes Betriebssystem zu entwickeln, aber es lag an einem anderen Mitglied der wachsenden Open-Source-Gemeinschaft, dies in die Tat umzusetzen.
Ein weiterer entscheidender Moment ist der Aufstieg von Linux, das 1991 von Linus Torvalds als persönliches Projekt gestartet wurde. Wikipedia hat einen großartigen Artikel über die Geschichte von Linuxaber es genügt zu sagen, dass Linus auf den Bemühungen anderer Mitglieder der Gemeinschaft aufbaute - einschließlich der Verwendung des GNU C Compilers - um den Linux-Kernel zu entwickeln.
Wir alle wissen, wie erfolgreich das Linux-Projekt geworden ist, da Linux-basierte Betriebssysteme heute weltweit wichtige Arbeitslasten bewältigen. Linux ist immer noch kostenlos und wird nach wie vor von einer Open-Source-Gemeinschaft von Freiwilligen unterstützt - mit Versionen, die Millionen von Codezeilen enthalten.
Unsere beiden Beispiele verweisen auf zwei der Eckpfeiler der Open-Source-Gemeinschaft. Erstens sollte Software frei und offen sein, um jedem die Möglichkeit zu geben, einen Beitrag zu leisten und etwas Größeres zu schaffen.
Es verweist auch auf die Kraft einer Gemeinschaft, etwas Größeres zu erreichen, als es der Fall wäre, wenn es Einzelpersonen versuchen würden - oder wenn es innerhalb der begrenzteren Grenzen der kommerziellen Softwareentwicklung versucht würde.
Die Kathedrale und der Basar
Gemeinschaften, die sich für ein gemeinsames Ziel zusammenschließen, haben eine lange Geschichte. Eine Möglichkeit, diese Art von Vereinbarungen zu betrachten, ist das Konzept der Gemeinschaften der Praxis (CoPs), das im Wesentlichen das ist, was viele Open-Source-Gemeinschaften sind.
CoPs sind organisierte Gruppen, in denen Menschen zusammenkommen, um auf ein ähnliches Ziel hinzuarbeiten. Eine CoP kann absichtlich als geplante Aktion gebildet werden - oder sich auf natürliche Weise entwickeln, wenn Menschen erkennen, dass sie gemeinsame Ziele haben und beschließen, zusammenzuarbeiten. In diesen Gruppen werden Informationen und Fertigkeiten ausgetauscht und die Arbeitslast geteilt, damit es nicht zu Doppelarbeit kommt.
Alles ist freiwillig - aber es kann ein bisschen chaotisch sein. Intuitiv würde man denken, dass ein sorgfältiger geplanter Ansatz bei der Softwareentwicklung erfolgreicher wäre, aber stattdessen gibt es starke Hinweise darauf, dass der offene, weniger unorganisierte Ansatz von Open Source unglaubliche Ergebnisse liefert.
Das ist es, was Eric Steven Raymond in seinem Buch angedeutet hat, Die Kathedrale und der Basar. Der Autor verweist auf zwei Modelle der Softwareentwicklung. Erstens das Kathedralenmodell, bei dem während der Entwicklung nur eine begrenzte Gruppe von Personen Zugang zum Quellcode hat und zum Entwicklungsprozess beiträgt - selbst wenn der Quellcode nach der Veröffentlichung verfügbar ist. Das Kathedralenmodell ist geplant und kontrolliert - ähnlich wie die Entwicklung von Software in einem kommerziellen Umfeld.
Aber es gibt noch ein zweites Modell, den Basar. Der Basar ist ein viel chaotischeres Modell, bei dem häufig neue Versionen herausgegeben werden und bei dem der Entwicklungsprozess für Beiträge von jedermann offen ist. Im Grunde genommen findet die Entwicklung im Internet statt und ist für jeden sichtbar. Das Argument ist, dass das Basarmodell trotz dieser chaotischen Methode aufgrund seiner Offenheit schneller zu Ergebnissen führen kann - solange die Kontrollen vorhanden sind.
Raymond merkte beispielsweise an, dass die Überprüfung von Fehlern viel einfacher ist, wenn viele Augen auf den Code gerichtet sind, während das Auffinden von Fehlern im Kathedralenmodell wesentlich schwieriger ist.
Die Tragödie der Allmende
In vielerlei Hinsicht ist die Entwicklung von Open-Source-Software in der Gemeinschaft ein hervorragender Weg, um selbst bei sehr großen Projekten fähigen und hochwertigen Code zu produzieren. Aber wie immer im Leben gibt es auch bei diesem Ansatz Vor- und Nachteile.
Wie wir im letzten Abschnitt dargelegt haben, funktioniert die Basar-Methode der Codeerstellung nur, wenn die richtigen Steuerelemente vorhanden sind. Warum brauchen wir diese Kontrollen? Nun, das bringt uns zu unserer zweiten Metapher: die Tragödie der Allmende.
Die Tragödie der Allmende ist ein bekanntes Konzept aus der Wirtschaftswissenschaft, das darauf hinweist, dass Menschen nicht immer im Sinne des Gemeinwohls handeln - stattdessen handeln sie oft aus Eigeninteresse und damit gegen das Gemeinwohl der Gemeinschaft. Das kann auch in der Open-Source-Gemeinschaft passieren.
Einerseits besteht einer der größten Vorteile von Open-Source-Software darin, dass jeder Einzelne zum Open-Source-Code beitragen kann - durch Hinzufügen, Anpassen oder Ändern des Codes. Dies kann jedoch zu Problemen bei Open-Source-Projekten führen, wenn Einzelne ihre individuellen Interessen durchsetzen, ohne das Gemeinwohl des Open-Source-Projekts zu berücksichtigen.
Zu diesem Eigeninteresse gehört finanzieller Gewinn, es kann aber auch bedeuten, dass Projekte einfach in Richtungen gezogen werden, die der breiteren Open-Source-Gemeinschaft nicht zugute kommen. Oder das Projekt stirbt einfach ab, weil auf individueller Ebene wenig Interesse besteht - auch wenn es auf Gemeinschaftsebene einen Wert hat.
Während also die "Weisheit der Masse" enorme Vorteile bringen kann, können die einzelnen Mitglieder der Open-Source-Gemeinschaft manchmal als Stolpersteine wirken.
Open-Source-Governance und Entscheidungsfindung
Um das Beste aus dem guten Willen zu machen, der hinter Open-Source-Software-Projekten steht, muss ein solides Governance- und Entscheidungsfindungssystem vorhanden sein, um das Verhalten des Einzelnen zum Wohle der Allgemeinheit zu steuern.
In der Open-Source-Gemeinschaft gibt es verschiedene Strategien für die Führung. Einige könnten völlig demokratisch sein, aber andererseits hat Linus Torvalds sehr erfolgreich als "wohlwollender Diktator" hinter Linux agiert.
Jedes Open-Source-Projekt ist anders, und die gewählte Governance-Struktur wird sowohl von der Art des Projekts als auch von der Form und Größe der Gruppe, die dazu beiträgt, und natürlich von den allgemeinen Zielen des Projekts bestimmt.
Im Großen und Ganzen sollten die Leiter einer Open-Source-Gemeinschaft eine Entscheidungsstruktur, einen festen Prozess, wie neue Betreuer hinzugefügt werden, und die Entscheidung für ein Build-System, das den Zielen des Projekts entspricht, in Betracht ziehen.
Auch das geistige Eigentum ist von Bedeutung - einschließlich der Open-Source-Lizenz, z. B. der GNU GPL oder der MIT-Lizenz. Auch das Eigentum an der Internet-Domäne sollte geklärt werden, während etwaige Markenzeichen ebenfalls auf faire Art und Weise berücksichtigt werden müssen.
Ein wichtiger Aspekt, den es zu berücksichtigen gilt, ist der Grad der Kontrolle über ein Projekt. Wie Eric Raymond mit seiner Basar-Analogie andeutet, ist der relative Mangel an Kontrolle das, was das Open-Source-Modell so erfolgreich macht. Ohne jegliche Kontrolle besteht jedoch die Gefahr, dass die Open-Source-Entwicklung der Tragödie der Allmende erliegt.
Kommerzielle Unternehmen und Open-Source-Gemeinschaften
Open-Source-Initiativen können Unglaubliches vollbringen - was schnell die Aufmerksamkeit kommerzieller Anbieter auf sich ziehen kann. Die Summen, um die es dabei geht, können gewaltig sein - man denke nur an den 34 Milliarden Dollar schweren Kauf von Red Hat durch IBM oder die 7,5 Milliarden Dollar schwere Investition von Microsoft in GitHub.
Man kann auch argumentieren, dass Open-Source-Projekte erst dann eine kritische Masse erreichen und sich in Unternehmen durchsetzen können, wenn ein kommerzielles Softwareunternehmen eintritt, um Support auf Unternehmensniveau zu bieten. Schließlich benötigen professionelle Entwickler, die in einer Unternehmensumgebung arbeiten, einen Support auf Unternehmensniveau, bevor sie eine Open-Source-Lösung in ihre Arbeit integrieren können.
So oder so haben Open-Source-Gemeinschaften komplexe und manchmal schwierige Beziehungen zu kommerziellen Anbietern, was angesichts des offensichtlichen Gegensatzes zwischen den kostenlosen Beiträgen von Gemeinschaftsmitgliedern und den gewinnorientierten Motiven kommerziell orientierter Organisationen verständlich ist.
Dennoch gibt es mehrere Modelle, die erfolgreich die Vorrechte von Open Source mit kommerziellen Anforderungen verbinden. Dies könnte ein direktes Sponsoring von Projekten bedeuten - aber auch kommerzielle Unternehmen können Open-Source-Initiativen durch finanzielle Mittel, die Spende von Ausrüstung oder die Zeit ihrer Mitarbeiter unterstützen, die dann beispielsweise an Open-Source-Code arbeiten können.
Eine bescheidene kommerzielle Investition kann die Bemühungen der Open-Source-Gemeinschaft erheblich verstärken. Im Gegenzug erhalten Unternehmen die Möglichkeit, hochgradig leistungsfähigen Open-Source-Code einzusetzen, der ihren Anforderungen entspricht. Natürlich kommt es hier auf die Open-Source-Governance an: Ohne eine starke unabhängige Führung können kommerzielle Ziele leicht die Ziele des Open-Source-Projekts außer Kraft setzen.
Die Bedeutung von Open Source für die IT-Branche
Die Informationstechnologie ist eine Wissenschaft, und die Wissenschaften profitieren stets von Offenheit, Experimentierfreude und Zusammenarbeit, da diese drei Eigenschaften die Innovation fördern. Folglich ist es leicht zu erkennen, warum Open-Source-Gemeinschaften für die Informationstechnologiebranche von Vorteil sind.
Die Innovationen werden durch die Open-Source-Entwicklung vorangetrieben und finden häufig ihren Weg in Unternehmenssoftwarelösungen. So wird beispielsweise ein Großteil der Anwendungsserver vom Linux-Kernel betrieben, während OpenSSL die sichere Kommunikation für die meisten HTTPS-fähigen Webserver unterstützt.
Mit der richtigen Steuerung haben Open-Source-Projekte die unglaubliche Fähigkeit, Innovationen voranzutreiben, indem sie die kollektive Intelligenz von erfahrenen Entwicklern aus der ganzen Welt auf einigermaßen koordinierte Weise nutzbar machen. Kommerzielle Unterstützung kann den Prozess fördern, indem sie die Motivationslücke überbrückt.
Open-Source-Software ist oft die bessere Alternative zu kommerziellen Lösungen, und in einigen Fällen ist der Open-Source-Code so gut, dass er im Grunde die einzig sinnvolle Lösung darstellt.
Es ist schwer vorherzusagen, wie sich das Tempo der technologischen Entwicklung entwickelt hätte, wenn die Open-Source-Gemeinschaften nicht so groß geworden wären, aber es wäre nicht unfair, zu behaupten, dass das Open-Source-Modell das Tempo der technologischen Entwicklung beschleunigt hat - und dies auch in Zukunft tun wird.