Kultur verändert sich und die Digitalisierung ist daran wesentlich beteiligt. Um neue Paradigma zu verstehen, finde ich es immer sehr inspirierend in den Bereich der Softwareentwicklung zu schauen, wie dort die Dinge gedacht werden. Manches ist erstaunlich vergleichbar. In der vergangenen Chaosradio-Sendung ging es nun um die Finanzierung von OpenSource-Software, also konkreter die Frage, wie die Lebenszeit derjenigen finanziert werden kann, die virtuelle Güter zu freien Verfügbarkeit und Nutzung kreieren. Die Parallelen zur Kultur muss ich nicht erklären, wie gut der Vergleich an vielen Stellen passt, wird im Text auch noch deutlicher.
Was ist OpenSource-Software?
OpenSource-Software ist Software, die frei ist. Das „frei“ in Freier Software lässt sich in vier konkrete Punkte untergliedern: Verwenden, verstehen, verbreiten, verbessern.
- Das Recht die Software für jeden Zweck zu verwenden. Für jeden Zweck heißt auch, für kommerzielle Zwecke.
- Das Recht die Software zu verstehen, also auf den Quellcode zugreifen zu können.
- Die Software weiter zu verbreiten, also Kopien von der Software zu machen.
- Das Recht die Software zu verändern, also die Software an eigene Bedürfnisse anzupassen. Diese Verbesserung darf dann wieder unter gleichen Bedingungen verbreitet werden (nicht aber unter proprietärer).
Festgehalten werden diese Bestimmungen in verschiedenen Standard-Lizenzen wie in der GNU General Public License (GNU GPL), der Apache-Lizenz und ich habe auch schon Software unter einer Creative Commons Lizenz gesehen. Die Free Software Foundation hat gemeinsam mit der GNU-Community eine Übersicht über verfügbare Lizenzen erstellt. Wichtig ist: Software ohne Lizenzhinweis ist ausdrücklich keine Freie Software, sofern sie nicht ausdrücklich auch in die Gemeinfreiheit entlassen wurde. Wobei bei der Gemeinfreiheit auch wieder zu beachten ist, dass Gemeinfreiheit in Deutschland nicht aktiv durch den Urheber bestimmt werden kann, weil das im Urheberrecht nicht vorgesehen ist, bzw. dies logische Widersprüche erzeugen würde. Zusätzlich hindert die Gemeinfreiheit niemanden daran die nächste kleine Änderung unter x-beliebiger anderer Lizenz zu veröffentlichen, also auch unter einer unfreien Lizenz.
Richtig frei ist Software also nur dann, wenn durch Lizenzbestimmungen zusätzlich sicher gestellt ist, dass auch Veränderungen wieder nur unter identischen oder gleichen Bedingungen weiter gegeben werden dürfen. Lizenzen, die dies sicherstellen, zählt man zu den sogenannten CopyLeft-Lizenzen, zu denen auch die GNU GPL zählt.
Wo wird Freie Software eingesetzt?
Die Verbreitung von Freier Software wird im allgemeinen unterschätzt. Als Beispiel dient der Aufruf dieser Webseite.
Als Browser kommt Firefox (mehrfach frei lizenziert, z.B. GNU GPL) zum Einsatz? Ihr gebt also www.kultur2punkt0.de in die Adresszeile. Damit die Webseite angezeigt werden kann, schickt der Browser zunächst eine Anfrage an einen Nameserver auf dem verschiedene Software läuft, die unter freien Lizenzen veröffentlicht werden. Der Nameserver gibt dem Browser daraufhin eine IP des Servers zurück, auf dem kultur2punkt0.de gehostet wird. Auf diesem Server (auch wieder ein Computer) läuft ein Betriebssystem, ein Linux, höchstwahrscheinlich ein Ubuntu-Linux (u.a. GNU GPL). Damit die Webseiteninhalte abgefragt werden können und meist auch dynamisch, also individuell auf Anfrage des Nutzers erstellt werden können, läuft auf diesem Server u.a. noch eine Software namens Apache HTTP Server (Apache Lizenz) oder zunehmend immer mehr auch nginx (BSD-Lizenz). Wer Statistiken zur Verbreitung mag, findet die bei netcraft News. Die Scriptsprache PHP ist größtenteil unter freier Lizenz veröffentlicht und die Blogsoftware WordPress, mit der die Webseite hier läuft, ist es auch.
Schauen wir außerdem auf die Meilensteine in der Entwicklung des World Wide Web, wie wir es hier gerade nutzen, liegt dem eine Idee des Austauschs zugrunde, die Tim Berners-Lee „ganz bewusst als neutralen, kreativen und kollaborativen Raum“ oder anders gesagt als freien Raum entwarf.
Weitere weit verbreitete OpenSource Software?
Zunächst einmal steckt der GNU/Linux-Kernel in ganz vielen technischen Geräten drin. Unter den Top 500 leistungsfähigsten Supercomputern dominiert Linux mit über 90%. Android basiert auf dem Linux-Kernel. Kassensyteme laufen unter Linux. Navigationssysteme, Fernseher, Steuergeräte im Auto u.v.m..
Die englischsprachige Wikipedia führt eine Liste mit OpenSource Software.
Empfehlungen:
- Ubuntu, Betriebssystem am PC und Laptop (Linux-Distribution) – deutschsprachige Comunity: ubuntuusers.de
- GIMP, Pixel-basiertes Grafikprogramm
- Inkscape, Vektor-basiertes Grafikprogramm
- Geany, einfacher Texteditor, z.B. geeignet für das Schreiben von HTML, Javascript- oder PHP-Code
Was gehört alles zur Entwicklung einer Software dazu?
Um Software zu entwickeln, ist es mit dem Schreiben von Code nicht getan. Um den Code auch später noch zu verstehen, gehört z.B. auch eine gute Dokumentation dazu. Diese findet sich einmal im Code selbst, aber auch in Spezifikationen oder auf Webseiten. An dieser Stelle ist ein erster Verweis auf die Finanzierung wichtig. Denn auch eine Homepage und ein paar Gedanken zum Marketing (mindestens Name und eine einprägsame kurze Beschreibung) sind die Grundlage dafür, dass wiederum Dritte den Wert erkennen und zum Beispiel für die Entwicklerzeit spenden.
Beim Design geht es weiter, Code selbst schafft meist erst einmal die Logik, damit die Software dann auch bedienbar ist, gehören etwas Zeit für ein ordentliches User-Interface dazu. Bedienung ist Design.
Ist der Code in einer ersten Version fertig, muss der natürlich weiterentwickelt werden. Das gute ist, dass man diese nicht allein aktuell halten muss, sondern diese mindestens theoretisch von Vielen gepflegt werden kann. Wird nun aber von Dritten neuer Code eingebracht, muss der trotzdem noch vom Hauptentwickler oder -team geprüft werden. Im Podcast wird über die Pflege von Software sehr lange gesprochen. Eine Rolle spielt dabei nicht nur das Prüfen auf Fehler, sondern auch daraufhin, ob gesetzte Standards eingehalten wurden oder welche Auswirkungen neu eingebrachte Erweiterungen auf die Pflege in Zukunft haben können. Unterstützt man beispielsweise Drittsoftware, muss auch bei jeder neue Version der Drittsoftware die Kompatibilität geprüft werden.
- die reine Arbeit am Code
- Review/Pflege
- Dokumentation
- User Interfaces
- Homepage/Marketing
Wie entsteht (OpenSource-) Software?
Am Anfang ist es meist ein Hobby. Nicht selten wird das Programmieren selbst während der Entwicklung der Software erst gelernt. So war auch die Verschlüsselungssoftware GnuPG, welche als aktueller Aufhänger der Sendung dient, anfangs ein Hobbyprojekt.
Mit steigender Funktionalität steigt meist auch die Komplexität, die gerade in Pflege von Softwarecode eine wachsende Herausforderung stellt. Nicht nur bei Verschlüsselungssoftware. Diese Zunahme an Komplexität ist immer mal wieder ein Grund, weshalb auch vormals unfreie Software als OpenSource-Software veröffentlicht wird.
Finanzierungsmodelle:
Mehrfachlizenzierung
Der direkte Verkauf von OpenSource Software funktioniert nicht. Theoretisch kann man OpenSource Software natürlich gegen Geld verkaufen, weil das die Lizenz nicht einschränkt, praktisch wird das aber keiner machen, wenn es die Software parallel zum kostenfreien Download gibt. Es gibt einen dualen Weg, die Mehrfachlizenzierung, was heißt, ich biete eine Software in einer GPL-Version und zusätzlich unter einer proprietärer Lizenz an. Das Modell ist aber nicht ganz unumstritten und bietet auch Gefahren. In der Wikipedia sind Vor- und Nachteile aufgeführt.
Service
Effektive Software ist meist auch relativ komplex und damit auch nicht leicht in bestehende Systeme zu implementieren. Bei OpenSource-Software kommt hinzu, dass der Service, also die Pflege von Code in der Regel den Weg über die Community nimmt. Gibt es einen Bug (Fehler), landet der erst einmal auf einer Liste bei all den anderen Bugs und wird erst nach und nach abgearbeitet. Als Unternehmen möchte ich natürlich, dass die Software läuft und Fehler schnell behoben werden. Für Implementierung und priorisierte Fehlerbeseitigung zahlen Unternehmen also durchaus bereitwillig einen regelmäßigen Beitrag.
Sponsorship
Bei einem Sponsorship-Modell gibt ein Unternehmen direkt Geld an die Entwickler, weil das Unternehmen von der Weiterentwicklung profitiert. Nun wird das Geld aber meist nicht einfach in Form eines Sponsoringvertrags überreicht, sondern in Form von Angestelltenverhältnissen. Im Podcast wird das Beispiel Apple und CUPS, einer freien Software, die das Drucken an unixoiden Betriebssystemen ermöglicht, genannt. Da Mac OS X wie auch GNU/Linux auch auf Unix basiert, konnten die Apple-Entwickler CUPS direkt in MacO OS X einbauen, eine Mehrfachlizenzierung ermöglichte das auch rechtlich. Apple stellte den CUPS-Hauptentwickler im Juli 2007 ein, übernahm aber auch die Rechte an der Software. CUPS ist weiterhin unter GPL lizenziert, Apple hat aber nun die Entscheidungsgewalt darüber, in welche Richtung die Software weiterentwickelt wird. In der Wikipedia ist auch dokumentiert, dass Apple einen Teil der Software entfernt hat, der für Mac OS X zwar nicht mehr von Bedeutung war, für Linux- und Unix-Systeme aber sehr wohl. Das Beispiel zeigt also ganz gut Vor- und Nachteil. Die Finanzierung der Weiterentwicklung am OpenSource-Code wurde sichergestellt, gleichzeitig wurde aber auch eine Entscheidungsmacht hin zum Geldgeber verschoben.
Ein Erfahrungswert oder Lernprozess wird im Chaosradio-Beitrag genannt, der mit wesentlich erscheint:
Rückblick auf die Historie
Zuerst haben Unternehmen sich OpenSource-Code genommen und nach ihren Bedürfnissen angepasst, diese Änderungen aber nicht wieder zurück an die Community gegeben. Es gab also die Hauptentwicklung und eine Erweiterung, die direkt in den Code eingebracht wurde. Nun wurde aber die Hauptentwicklung in einer neuen verbesserten Code veröffentlicht und die Firmen mussten ein zweites Mal Geld in die Hand nehmen, um ihre eigene Erweiterung wieder in die neue Version einzubauen. Die Erfahrung war also, dass mit jeder neuen Version wieder Geld ausgeben werden musste. Daraus hat sich entwickelt, dass die Unternehmen die Entwickler dafür bezahlen, dass sie den Code weiterentwickeln, im Gegenzug aber eine Garantie mitbringen, dass die eigenen Erweiterung in die Hauptentwicklung mit einfließt.
Crowdfunding
Spenden-basiert
Für OpenSource Entwicklung können natürlich jederzeit Spenden eingesammelt werden. Der Erfolg bei der Einwerbung von Spenden steigt mit der Popularität und der Präsenz. Es gibt Software, die eher im Hintergrund arbeitet und damit auch am Bildschirm nie sichtbar wird. Software, die am Bildschirm sichtbar wird, hat nicht nur die Chance überhaupt bemerkt zu werden, sondern auch die Möglichkeit eine Spendenaufforderung einzublenden. Populärstes Beispiel ist die Wikimedia Foundation, die ja nicht nur die Wikipedia betreibt, sondern auch diverse Software entwickelt, wie eben Media Wiki, mit dem auch die Wikipedia betrieben wird.
Die Ereignisse um die Finanzierung des Entwicklers von GnuPG (Software für EMail-Verschlüsselung), zeigt die Abhängigkeit von Öffentlichkeit. Der Entwickler hatte über eine Crowdfunding-Plattform 37.270 Euro eingesammelt (reward-based) und veröffentlichte daraufhin das Ergebnis, eine Aufschlüsselung der Kosten, die den Einnahmen gegenüberstanden. Noch bevor etwas für die Finanzierung der Entwicklung eingesetzt werden konnte, ging erst einmal die Hälfte für Plattform-Gebühren, Steuern, den Kampagnen-Manager und die ganzen Gegenleistungen ab. Letztlich blieben von allem für die reine Arbeit am Code nur 6.000 Euro übrig. Erst ein (nach Angaben der Chaosradio-Gäste etwas weinerlicher) Artikel auf propublica.org brachte die nötige Aufmerksamkeit, die letztlich auch Facebook und einen Zahlungsdienst dazu „ermutigten“ jeweils 60.000 US$ an GnuPG zu spenden. Auf golem.de ist die Geschichte noch einmal nachzulesen.
Von der Leipziger Uni aus wurde 2007 eine Crowdfunding-Webseite namen Cofundos gestartet, die sich speziell an Entwickler und deren Community wandte. Die Gegenleistungen sind wohl auch solche auf Spendenbasis. Die Plattform selbst ist zwar noch online, sieht aber stark verweist aus. Spamkommentare zeigen, dass da nichts mehr passiert. Das besondere an der Plattform-Idee ist die Bedingung, dass Ergebnis unter einer Freien Lizenz veröffentlicht werden müssen.
Im Chaosradio-Beitrag wird auch die Crowdfunding-Plattform Patreon genannt, über die man einzelnen Personen, also auch Entwickler mit einem regelmäßigen monatlichen Beitrag unterstützen kann. Die Plattform richtet sich in erster Linie an Künstler und deren Supporter, eine Kategorie „Coding“ oder „Software“ gibt es daher nicht, genutzt werden kann sie aber auch für diese Zwecke.
Auf Basis von Gegenleistungen
Die Macher von App.net haben eine eigene Crowdfunding-Plattform namens Baker gestartet. Auf dieser kann jeder Software-Projekte einstellen und dafür Geld einsammeln. Im speziellen geht es um Erweiterungen für Software, in die in der Entwicklung mitunter viel Zeit gesteckt wird, obwohl vorher nicht klar ist, ob das überhaupt gefragt ist. Für OpenSource-Projekte ist die Nutzung kostenfrei.
Die Webtraffik-Analyse Software Piwik hat die Weiterentwicklung und neue Erweiterungen über eigene Crowdfunding-Seiten finanziert. Als Gegenleistungen gibt es die Namensnennung, Sticker, T-Shirts, bekannte Gegenleistungen also.
Das Konzept vom Open-Source-Zehnt
Der Open Source Zehnt ist ein Konzept des Gründers der Suchmaschine DuckDuckGo. Es ist vergleichbar mit dem Kirchen-Zehnt, der wohl bis ins Mittelalter üblich war. Es blieb wohl bisher beim Konzept.
Stiftungen
Ein großer Teil wird auch über Stiftungen, wie die Linux Foundation, die Free Software Foundation oder die Wau Holland Stiftung finanziert. In der Linux Foundation sind weltweit über 200 Firmen organisiert, sie kümmert sich um rechtlichen Schutz und die Finanzierung wichtiger Entwickler.
Merchandising
Für diverse populäre Software gibt es auch Fanartikel, deren Verkauf natürlich auch zur Finanzierung von Softwareentwicklung mit beitragen. Welchen Anteil das an der Gesamtfinanzierung ausmacht, ist natürlich schwer zu beziffern.
Nicht nur finanzieren, sondern auch sinnvolle Verwendung der Mittel sicherstellen
Als Abschluss möchte ich noch einmal auf das Gesagte im Chaosradio-Beitrag zurückgreifen. Dort wurde nämlich betont, dass eine Lösung, wie sie jetzt bei GnuPG gefunden wurde, auch jetzt noch nicht das best-denkbare Ergebnis geschaffen hat. Es wurde konkret kritisiert, dass das ganze Geld, was da zur Verfügung gestellt wurde, dann doch wieder nur an der lautesten Stelle hingeworfen wurde, ein Review, aber nicht vorgesehen ist. Was es in Zukunft brauche, sei nicht nur die Sicherung der Finanzierung, sondern auch eine Kontrolle darüber, dass diese Gelder auch sinnvoll angewendet werden.
Updates:
Über Twitter wurden noch die Finanzierungswege „Schulungen + Fachliteratur“ und individuelles Coding als Art des Service (customizing) genannt.
Welche weiteren Möglichkeiten seht ihr, um Freie Software zu finanzieren? Ich ergänze gern!