Guter Code will geteilt werden
Wir bei Statistik Stadt Zürich glauben, dass Wissen geteilt werden soll. Deshalb haben wir begonnen, unseren Code auf GitHub zu publizieren. Was die Vorteile sind, erfahren Sie in diesem SSZ-Magazin.
Bereits seit 2012 verpflichtet sich Statistik Stadt Zürich zur Offenheit. Angefangen hat es mit Open Government Data, der Offenlegung von Daten ohne Schutzbedürfnis. 2015 folgten unsere Quartierspiegel mit Open Access, 2017 unsere JavaScript-Bibliothek, die auf D3 (Data-Driven Documents) basiert. Nun kommt ein weiterer Meilenstein hinzu.
Statistik Stadt Zürich publiziert Code von diversen statistischen Auswertungen auf GitHub. Doch was sind GitHub und Git überhaupt? Git ist ein dezentrales Versionsverwaltungssystem, GitHub dagegen ein Onlinedienst, der Software-Entwicklungsprojekte und deren Versionierungen auf seinen Servern bereitstellt. Auf GitHub werden Projekte in Verzeichnissen, sogenannten Repositories, verwaltet – diese können öffentlich oder auch privat sein. Solche Repositories können von mehreren Personen gleichzeitig bearbeitet werden, und verschiedene Versionen der gleichen Software lassen sich wieder zusammenführen, nachdem sie getrennt (in sogenannten Forks) bearbeitet wurden. Änderungen der einzelnen Nutzer sind gut sichtbar, und der Besitzer des Repository entscheidet, welche Änderungen übernommen werden sollen.
Was sind die Vorteile, den Code öffentlich zu machen? Erstens führt es zu mehr Transparenz: In unseren Veröffentlichungen wird klar, welche Annahmen getroffen werden, welche Berechnungen stattfinden und wie die finale Zahl entsteht. Zweitens können andere von unserem Wissen profitieren: Viele statistische Ämter anderer Städte oder Kantone werden mit denselben Aufgaben und Problemen konfrontiert und ziehen Nutzen aus der Offenlegung von Code. Drittens können wir vom Wissen anderer profitieren: Wenn unser Code öffentlich ist, kann dies Diskussionen und Feedback anregen und den Code verbessern. Dies führt zu höherer Qualität und Zuverlässigkeit. Von der Offenlegung profitieren wir alle.
Ein aktuelles Beispiel ist ein Projekt zur Anonymisierung aggregierter Daten. Statistik Stadt Zürich erhält vom Bundesamt für Statistik zahlreiche Daten, die auf kleinräumiger Ebene Rückschlüsse auf Einzelpersonen oder Einzelfirmen zulassen, sofern man sie nicht korrekt anonymisiert. Nun haben wir an den Statistiktagen ein Programm vorgestellt, das eine Anonymisierung auf allen räumlichen Ebenen automatisch, schnell und korrekt durchführt. Dieses Programm ist für viele Statistikerinnen und Statistiker von grossem Interesse, da sie mit ähnlichen Daten arbeiten. Der entsprechende Code, erstellt mit SAS, steht nun auf GitHub zur Verfügung.
Natürlich ist nicht nur SAS-Code auf GitHub verfügbar: Unsere Visualisierungsbibliothek und die Dokumentation für unsere Linked-Data-Schnittstelle sind bereits online, und auch R-Code für verschiedene Projekte werden wir zukünftig offenlegen. Auch für den OGD-Katalog setzen wir auf GitHub und veröffentlichen den zugehörigen Code sowie viele Anwendungsbeispiele für die publizierten Daten. Wir freuen uns auf den Austausch mit anderen Statistikstellen, Kundinnen und Kunden sowie mit der Git-Gemeinschaft.