Binärcode und Fragezeichen

Freie versus proprietärer Software in der Sozialwirtschaft

Auf dem Barcamp Soziale Innovation (12.10. in Nürnberg) gab es eine interessante Session zum Thema „Public Code – Public Money“. Was steckt hinter diesen Begriffen?

Darum geht’s

Die öffentliche Verwaltung gibt jedes Jahr viel Geld für Lizenzen von Software und/oder für die Entwicklung von auf ihre Bedürfnisse zugeschnittene Software aus. Geld, das vom Steuerzahler finanziert wird. Das Gleiche gilt für die Soziale Arbeit, die ja zu großen Teilen von der Öffentlichen Hand refinanziert wird.

Gekauft bzw. lizenziert wird damit meist proprietäre Software, die ggfs. noch auf spezielle Bedürfnisse angepasst wird.

Die Anpassung kostet natürlich auch und zwar zum einen Geld für die Anpassungsdienstleistung, also zum Programmierung der „Specials“. Zum anderen kostet es aber auch Know-How. Denn eines ist klar: individuell programmiert werden kann nur, wenn man das Wissen hat, wie die Arbeitsstrukturen und -abläufe sind, welche Daten erfasst werden sollen, was mit diesen Daten passieren soll, wie diese weiterverarbeitet werden sollen. Und wer hat dieses Wissen? Im überwiegenden Fall der Kunde, der die Anpassung beauftragt. Bedeutet: nur durch den inhaltlichen Input kann eine Spezialanwendung nutzbringend programmiert und ausgerollt werden. Im optimalen Fall hat der Kunde dann eine gut funktionierende Software – in dem lizenzierten Funktionsumfang, die er nutzen darf. Nutzen darf – nicht  gekauft hat im Sinne, dass die Codes dieser Software in sein Eigentum übergeht. Dazu aber gleich mehr.

Viel wichtiger ist die Frage, was hat der Softwarehersteller/Dienstleister davon? Eine ganze Menge, denn er ist Eigentümer (Urheber) der Software inklusive der Codes und darf diese an andere Kunden verkaufen (jedenfalls in den allermeisten vertraglichen Konstellationen). Das betrifft auch die mit Kundenwissen entwickelten Spezialbereiche. Mit anderen Worten: der Kunde zahlt doppelt – mit „Steuergeld“ für die Lizenzen und mit Wissen, das der Dienstleister mit weiteren Aufträgen monetarisieren kann.

Dimension: Gemeinwohlorientierte, freie digitale Infrastruktur

Die Kampagne „Public Money – Public Code“ der Free Software Foundation Europe (FSFE) fordert Politiker dazu auf, öffentlich finanzierte Software unter Open-Source-Lizenzen öffentlich zugänglich zu machen.

Dazu Matthias Kirschner, Präsident der Free Software Foundation Europe, zur Kampagne:
„Wir brauchen Software, die das Teilen von guten Ideen und Lösungen unterstützt. Nur so werden wir in der Lage sein, digitale Angebote für Menschen aus ganz Europa zu verbessern. Wir brauchen Software, die Wahlfreiheit, Zugang und Wettbewerb garantiert. Wir brauchen Software, die öffentlichen Verwaltungen dabei hilft, die volle Kontrolle über ihre kritische digitale Infrastruktur zu erlangen und es ihnen so so erlaubt, von einer Handvoll Unternehmen unabhängig zu werden und bleiben zu können.“

>> Mehr zur Kampagne „Public Money – Public Code“ gibt es hier:  publiccode.eu/de
>> Wer sich über die Free Software Foundation Europa informieren möchte, ist hier richtig:  fsfe.org/index.de.html

Thomas Mack, Sozialinformatiker, ( @toking42 auf Twitter) beschäftigt sich intensiv mit der Thematik „Public Money – Public Code“ in der Sozialen Arbeit/Sozialwirtschaft und wurde dazu von Podcaster Benedikt Geyer (  Irgendwas mit Menschen – IWMM) im Anschluss an das Barcamp befragt.

Kurzzusammenfassung im Video:

Das ganze Interview im Podcast auf IWMM:
 irgendwas-mit-menschen.com/iwmm-meta-podcast-022-oeffentliches-geld-oeffentlicher-code/

Dimension: Zukunftssicherung der Organisation/des Unternehmens

Hier ein paar Definitionen vorab zum Verständnis:

Binärcode/Maschinencode: ein Computer ist ziemlich „einfach gestrickt“ und versteht nur zwei sich gegenüberstehende Zustände, z. B. aus/an oder wahr/falsch oder eben 1/0. „Sprache“ des Computers ist der Binärcode, der nur aus einer Folge von 1 und 0 besteht. Für Menschen ist dieser „Maschinencode“ nicht greifbar.

Quellcode: Um ihre Anweisungen zu schreiben, verwenden Programmierer daher Programmiersprachen (z. B. Python, Java, SQL). Die mit diesen Sprachen erstellten Programme werden Quellcode genannt.

Compiler: Damit der Computer die erstellten Programme versteht und ausführen kann, müssen die Programmzeilen des Quellcodes in einen Binärcode übersetzt werden. Diese Übersetzung wird von einem Compiler (wiederum ein Programm) ausgeführt.

Will ein Nutzer ein Softwareprogramm verändern, muss er sowohl über dessen Quellcode als auch den passenden Compiler verfügen, denn nach der Überführung in den Binärcode kann das Programm nicht mehr verändert werden. Möchte man Modifiktionen vornehmen, muss man dies im zugrundeliegenden Quellcode machen und dann eine erneute Übersetzung durch den Compiler vornehmen.

Und da liegt oft der Hase im Pfeffer: Proprietäre Software wird meist ohne Quellcode ausgeliefert; die Nutzungsrechte beziehen sich lediglich auf den Maschinencode.

Folge: Der Nutzer kann die Software nicht ohne Hilfe des Softwareanbieters ändern, weiterentwickeln oder gar weiterverwerten. Programme dagen, die unter einer Open Source Lizenz stehen, werden in der Regel direkt mit ihrem Quellcode ausgeliefert, dessen Änderung und Weitergabe durch die Lizenz gestattet ist. Dies ermöglicht deren Anpassung für spezifische Bedürfnisse.

Was also tun, wenn man sich mit dem Gedanken trägt, Software anzuschaffen? Handelt es sich um ein Standardprogramm (z. B. Word, Microsoft Office Paket), stellt sich die Frage der Anpassung wohl weniger. Hier ist eher zu überlegen, ob es als Alternativen freie Software gibt, die die Organisation nutzen kann (z. B. Open Office). Dazu unten mehr.

Bei der Konfiguration von Fachsoftware oder der Erstellung von Individualsoftware wird die wird die Frage der Überlassung des Quellcodes und der Rechte an diesem aber durchaus relevant. Denn nur dann besteht die Möglichkeit, selbst die Software weiter anzupassen bzw. von einem anderen Programmierer anpassen/weiterentwickeln zu lassen.

Das sollte im Vertrag geregelt sein:

  • Zwischen den Parteien sollte ausdrücklich vereinbart werden, dass die Organisation/das Unternehmen als Auftraggeber berechtigt ist, die Software zu verändern und deshalb die bestimmungsgemäße Nutzung auch die Herausgabe des  Quellcodes und das Recht, diesen zu verändern beinhaltet.
  • Vertraglich vereinbart werden sollte auch, dass der Quellcode kommentiert übergeben wird, um die Programmierung bzw. dessen Logik nachvollziehen zu können.
  • Es ist anzuführen, ob und welcher marktübliche Compiler verwendet wurde. Wurde ein selbst erstellter Compiler zur Übersetzung des Quellcodes verwendet, so müssen die vertraglichen Regeln auch die Überlassung dieses Compilers umfassen, sonst funktioniert die Bearbeitung oder Änderung der Software doch wieder nicht.