Eine spannende Reise: Unser Weg zur Open-Source-Programmierung
Eine IT-Architektin, ein Projekt Manager und ein Technical Requirement Engineer erzählen über ihre Erfahrungen bei der Open-Source-Entwicklung der Fachanwendung ISI
Eine städtische Fachanwendung goes public
Das IT-Referat der Stadt München hat gemeinsam mit dem Referat für Stadtplanung und Bauordnung (Planungsreferat) ein ehrgeiziges Projekt auf die Beine gestellt: die Entwicklung der Open-Source-Anwendung ISI (Informationssystem für Soziale Infrastrukturplanung) wurde als eine der ersten Projekte auf GitHub veröffentlicht, damit andere Städte und Interessierte den Code nutzen und weiterentwickeln können.
Beim ISI für das Planungsreferat geht es darum, die Mitarbeiter*innen im Bereich Stadtentwicklungsplanung bei der langfristigen Bedarfsplanung von wohnortnahen Kindertagesbetreuungs- und Grundschulplätzen zu unterstützen. Die Anwendung löst bestehende Planungsinstrumente ab und erleichtert dem Referat die kommunale Pflichtaufgabe zur Planung einer bedarfs- und zeitgerechten Versorgung.
Silke Schmid (IT-Architektin und Entwicklerin), Holger von Rauch (Projekt Manager und Scrum Master) und Albrecht Schänzel (Technical Requirement Engineer und DevOps) vom städtischen IT-Dienstleister it@M haben an dem Projekt mitgearbeitet. Sie erzählen über ihre Erfahrungen, die sie zu „Open-Source“ gemacht haben und von den Besonderheiten des Programmierens im öffentlichen Raum.
Von GitLab zu GitHub: Der Weg zu Open Source
Public Money, Public Code – Unter dieser Prämisse beschloss der Stadtrat im Mai 2020, dass in der Stadtratsperiode von 2020 bis 2026 der Quellcode städtischer Software veröffentlicht werden soll. Zu diesem Zeitpunkt waren einige Rahmenbedingungen nicht vorhanden, daher begann das Projekt den Quellcode im LHM-internen Versionsverwaltungssystem (GitLab) zu verwalten und sich parallel auf die Veröffentlichung des Quellcodes als Open Source vorzubereiten.
Für das Team bedeutete dies nicht nur, den Quellcode nach außen zu öffnen, sondern auch zahlreiche rechtliche und technische Hürden zu meistern. Holger von Rauch erzählt: „ISI haben wir zunächst im städtischen GitLab angefangen und sind dann Ende 2022 umgestiegen auf GitHub. Das war für uns anfangs ungewohnt, da der Code jetzt im Internet öffentlich einsehbar ist. Das bringt eine andere Qualität in die Arbeit. Da mussten wir prüfen, unter welchen Bedingungen wir den Sourcecode veröffentlichen können.“
Entwickeln auf GitHub bedeutet, dass der Quellcode für ein Verwaltungssystem im Internet frei zugänglich ist. Diese Neuerung erforderte genaue Überlegungen, welche Daten veröffentlicht werden dürfen und welche nicht. „Interne Serverangaben sowie alle stadtinternen Angaben dürfen natürlich nicht an die Öffentlichkeit“, erklärt Albrecht Schänzel. „Auch bei der Funktionalität der Anwendung musste teilweise so programmiert werden, dass man städtische Interna nicht genau erkennen kann. Zum Beispiel dürfen die Parameter für Berechnungen zur Festlegung der Kindergartenplätze nicht veröffentlicht werden“, ergänzt Silke Schmid.
Aus diesem Grund gibt es eine Mischung: Öffentliche Teile befinden sich auf GitHub, während sensible Informationen im städtischen GitLab verbleiben. Bei der Installation der Anwendung wird der öffentliche Code mit den intern gehaltenen Informationen zusammengeführt.
Die komplette Software als Quellcode zum Download
Der Livegang der Software erfolgte iterativ, das heißt mehrmalig. Die erste Version wurde im Juli 2023 produktiv gesetzt, die aktuelle Version 1.4 Ende August 2024 fertiggestellt. Der komplette Quellcode von Front- und Backend ist zum Download in GitHub verfügbar.
Wie man sich das vorstellen kann, erläutert Albrecht: „Die Anwendung wird in der Programmiersprache Java erstellt. Der dafür geschriebene Quellcode wird in GitHub abgelegt. Dort ist dieser öffentlich zugänglich (Open Source), downloadbar und somit für jeden änderbar und erweiterbar.
Der Leitfaden: Ein Kompass für Open Source
Mit dem im Mai 2021 genehmigten Stadtratsbeschluss „Open Source Hub und Open Source Sabbatical etablieren“ wurde festgelegt, dass ein Open Source Hub bei der LHM etabliert wird, der zum Ziel hat, die Open Source Aktivitäten in der LHM gemäß der IT-Strategie zu koordinieren und zu fördern. Um den Teams den Übergang zu Open Source zu erleichtern, hat das Open Source Hub einen Leitfaden entwickelt, der unter anderem klärt, unter welchen Lizenzen der Code veröffentlicht werden darf und wie er korrekt dokumentiert wird.
„Als wir gestartet sind, war der Leitfaden noch in den Kinderschuhen. Heute ist er umfangreicher und hilft den Teams, ihre Software rechtssicher zu veröffentlichen“, berichtet Silke. Albrecht ergänzt: „Wir machen unseren Code öffentlich und verwenden selbst auch anderen öffentlichen Code. Genau das bildet der Leitfaden ab. Er legt fest, unter welchen Rahmenbedingungen unsere Software benutzt werden darf, aber auch welche Bedingungen von uns zu erfüllen sind.“
Vorteile der offenen Entwicklung
Das Arbeiten auf GitHub bietet viele Vorteile. „Andere Kommunen können unsere Software einfach herunterladen, an ihre Bedürfnisse anpassen und benutzen“, sagt Holger. Die Zugänglichkeit spart Kosten – ein Argument, das auch im Stadtrat eine große Rolle spielte. „Wir müssen keine teure Software von Drittanbietern kaufen, sondern können auf freie Lizenzen und die Arbeit der Open-Source-Community zurückgreifen“, ergänzt Albrecht.
Darüber hinaus ermöglicht GitHub eine bessere Kollaboration, auch über die Stadtgrenzen hinaus. „Open Source bedeutet, dass jede*r theoretisch an unserer Software mitarbeiten kann. Bisher hat sich aber noch niemand gemeldet, der aktiv am Code mitgewirkt hat“, gibt Albrecht zu. Dennoch rechnet das Team mit zukünftigen Beiträgen, insbesondere von anderen Städten.
Herausforderungen und Lernprozesse
Die Entscheidung, ISI Open Source zu entwickeln, brachte jedoch auch Herausforderungen mit sich.
„Es ist ja so“, schildert Holger, „wenn wir sagen, wir programmieren die Software mit städtischem Geld gemäß dem Stadtratsbeschluss und stellen alles der Welt kostenlos zur Verfügung, dann kommt erstmal Erstaunen auf. Also man muss dann eine Weile darüber nachdenken, gemeinsam darüber reden, bis alle verinnerlicht haben, dass das eine gute Idee ist. Da haben wir schon ein bisschen Bewusstseinsarbeit leisten müssen. Aber am Schluss waren alle damit zufrieden.“
Zu wissen, dass der eigene Code von der ganzen Welt eingesehen werden kann, ist für das Programmieren im öffentlichen GitHub in gewisser Hinsicht gewöhnungsbedürftig. „Wenn Entwickler*innen das öffentlich stellen, ist das was anderes, als wenn es nur im internen GitLab unter Kolleg*innen sichtbar ist. Ich hatte schon das Gefühl, dass sich da was verändert – jetzt guckt die ganze Welt zu“, räumt Holger ein.
Ein nicht unbedeutender Faktor ist für Albrecht dabei die Anonymität: „Mir war wichtig, dass mein Name nicht in GitHub auftaucht. Ich bin dort unter einem Pseudonym vertreten. Alle anderen auch. Den Entwickler*innen ist aber freigestellt, ob sie anonym bleiben oder nicht.
Ein Gefühl der Beobachtung kam jedoch zu keiner Zeit auf, ergänzt Albrecht: „Ich hatte nicht den Eindruck, dass ich bei meiner Arbeit darauf achten muss. Das kann aber noch kommen, wenn irgendwelche Meldungen von extern reinkommen, da muss man schauen, wie man damit umgeht. Dann hat man Außenwirkung. Da müssen wir uns rantasten, denn bisher hatte man noch keinen Kontakt mit jemanden.“
Die Möglichkeit beobachtet zu werden, hat aber auch Vorteile. Zum Beispiel achten die Entwickler*innen dadurch noch mehr auf Clean Code. Code Reviews, Security Checks und Lifecycle Maßnahmen sind schon länger bei der LHM etabliert, auch bei internen Projekten. Trotzdem: Bei der Entwicklung von Open Source Code wird noch mehr darauf geachtet, dass dies auch korrekt umgesetzt wird. Silke betont, dass dieser zusätzliche Aufwand notwendig und lohnend ist. „Als IT-Architektin achte ich immer auf einen sauberen, gepflegten Code. Und ich habe schon das Gefühl, dass wenn man Open Source arbeitet, dann noch mehr dahinter ist.“
Neu für das Team war, dass ein gewisser zusätzlicher Aufwand bei der Umsetzung der Software zu berücksichtigen ist. Der kritische Akt besteht darin, abzuwägen, inwieweit man es generisch macht, damit es auch von anderen genutzt werden kann oder ob man münchenspezifisch bleibt.
„Ich kann die Software ganz speziell auf die Anforderungen für München und die Verwaltungsstruktur von München programmieren. Dann steht vielleicht das Wort München im Programmcode drin und taucht auf der Oberfläche auf. Aber wenn ich es dann zum Beispiel in Düsseldorf nutzen will, stört das ein bisschen. Damit das nicht so ist, kann man die Software so gestalten, dass sie auch andere nutzen können. Dann ist es generischer, was wiederum aufwändiger ist, als wenn es speziell auf den Anwendungsfall programmiert wird. Wenn man es darauf optimieren würde, dass es für ganz viele andere Städte und Strukturen passt, dann würden der Aufwand und die Kosten ganz gewaltig steigen“, verrät Holger.
Erfolge und Ausblick
ISI wird nun aktiv vom Planungsreferat genutzt, um die städtische Infrastruktur effizient zu planen. Die Entwickler*innen sind stolz auf das, was sie erreicht haben. „Es ist ein gutes Gefühl, etwas zu schaffen, das auch anderen Städten zugutekommen kann“, sagt Silke. Albrecht fügt hinzu: „Die Idee, etwas zur Open-Source-Community beizutragen, motiviert ungemein.“
Mit der Veröffentlichung auf GitHub hofft das Team, dass weitere Städte und Kommunen die Software für ihre Bedürfnisse anpassen und so von der Münchner Entwicklung profitieren können.
Der Weg zur Open-Source-Entwicklung war für das ISI-Team eine spannende Reise mit vielen Herausforderungen und Erkenntnissen. Doch am Ende steht ein transparentes, flexibles und zukunftsweisendes Produkt – ein echter Gewinn für die Stadt München und darüber hinaus.