{"id":12221,"date":"2024-04-23T15:45:17","date_gmt":"2024-04-23T13:45:17","guid":{"rendered":"https:\/\/www.iese.fraunhofer.de\/blog\/?p=12221"},"modified":"2024-04-23T15:45:17","modified_gmt":"2024-04-23T13:45:17","slug":"open-source-in-der-oeffentlichen-verwaltung-wir-zeigen-geeignete-open-source-prozesse-fuer-bestands-software","status":"publish","type":"post","link":"https:\/\/www.iese.fraunhofer.de\/blog\/open-source-in-der-oeffentlichen-verwaltung-wir-zeigen-geeignete-open-source-prozesse-fuer-bestands-software\/","title":{"rendered":"Open Source in der \u00d6ffentlichen Verwaltung: Wir zeigen geeignete Open-Source-Prozesse f\u00fcr (Bestands-)Software"},"content":{"rendered":"<p class=\"lead\">Seit einigen Jahren gibt es immer mehr Bestrebungen, <a href=\"https:\/\/www.iese.fraunhofer.de\/blog\/open-source-software\/\" target=\"_blank\" rel=\"noopener\">Open Source Software (OSS)<\/a> in allen Bereichen zu nutzen, in denen es m\u00f6glich ist. In Richtlinien zur Vergabe \u00f6ffentlicher Projekte finden immer h\u00e4ufiger Klauseln Einzug, welche die Realisierung als Open Source Software vorsehen (<a href=\"https:\/\/www.oeffentliche-it.de\/-\/public-money-public-code-digitale-souveraenitaet-der-verwaltung-mit-freier-software\">Open Source in der \u00d6ffentlichen Verwaltung<\/a>). Die vom Fraunhofer IESE im Themengebiet Smart City bearbeiteten Projekte weisen h\u00e4ufig diese F\u00f6rderrichtlinie auf, da hier oft dem Credo \u00bbpublic money, public code\u00ab gefolgt wird. Neue Projekte in diesem Bereich m\u00fcssen oft von Anfang an mit dem Gedanken an eine Open-Source-Ver\u00f6ffentlichung entwickelt werden. Aber auch bestehende Projekte k\u00f6nnten davon betroffen sein und m\u00fcssen w\u00e4hrend ihres Entwicklungszyklus oder bei Projektende unter einer Open-Source-Lizenz ver\u00f6ffentlicht werden.<\/p>\n<p>Gerade Letzteres kann besondere Herausforderungen bei Projekten mit sich bringen, beispielsweise wenn diese bereits propriet\u00e4re Softwarekomponenten eingesetzt haben. Weiterhin k\u00f6nnen inkompatible Lizenzen, eine unsaubere Git-Historie oder auch Geheimnisverluste (die versehentliche Ver\u00f6ffentlichung von Zugangsdaten oder internen Informationen) zu Problemen f\u00fchren, wenn die Konfiguration nicht immer sauber gehalten wurde. Eine weitere Herausforderung vor allem f\u00fcr bestehende Projekte ist, dass diese in internen Versionskontrollsystemen (VCS) entwickelt wurden, die sich nicht f\u00fcr externen Zugriff und Beteiligung eignen. Eine Freigabe als Open Source Software ist dabei ein Prozess und ben\u00f6tigt dadurch kontinuierliche Planung der Ressourcen. Diese werden unter anderem f\u00fcr die Moderation der Beteiligungen und die Reaktion auf Feedback ben\u00f6tigt.<\/p>\n<p>Zur erfolgreichen Erf\u00fcllung von gestellten Anforderungen an die quelloffene Publikation von Softwareprojekten bestehen verschiedenste M\u00f6glichkeiten. In diesem Erfahrungsbericht gehen wir auf drei verschiedene Ans\u00e4tze zur Bereitstellung ein und bieten Ihnen einen Einblick in die Themen Moderation und Vermeidung von Geheimnisverlusten. Im Artikel <a href=\"https:\/\/www.iese.fraunhofer.de\/blog\/open-source-software\/\">\u00bbWas ist Open Source Software? Definition, Vor- und Nachteile, Lizenzen\u00ab<\/a> gehen unsere Kolleginnen Anna Maria Vollmer und Anna Schmitt auf allgemeine Aspekte von Open Source ein.<\/p>\n<h2>Ver\u00f6ffentlichungsans\u00e4tze<\/h2>\n<h3>Voraussetzungen<\/h3>\n<p>In diesem Artikel setzen wir diverse Aspekte voraus. Zum einen gehen wir davon aus, dass eine klare Entscheidung \u00fcber die Auswahl der Lizenzen vorliegt. Diese muss auf einer rechtssicheren Entscheidung beruhen und ist nicht Bestandteil dieses Artikels, der sich auf die praktischen Prozesse bei der Ver\u00f6ffentlichung fokussiert.<\/p>\n<p>Weiterhin gehen wir davon aus, dass die zu ver\u00f6ffentlichende Software zumindest zu den Release-Zeitpunkten einen Zustand hat, der die Bedingungen der eigenen Lizenz und aller Lizenzen von verwendeten Softwarekomponenten erf\u00fcllt. Hierzu kann exemplarisch z\u00e4hlen, dass keine Daten von dritten Urhebern im Repository ohne vorausgehende lizenzrechtliche \u00dcberpr\u00fcfung enthalten sind. Handelt es sich bei der zu ver\u00f6ffentlichenden Software um ein Derivat einer bereits bestehenden Software, ist die entsprechende Ursprungslizenz zu beachten.<\/p>\n<p>Des Weiteren gehen wir davon aus, dass die Entwicklung der Software in einem geschlossenem Versionskontrollsystem stattfindet. Es empfiehlt sich, auch die OSS-Ver\u00f6ffentlichungen \u00fcber Versionskontrollsysteme durchzuf\u00fchren, um die M\u00f6glichkeiten des Bezugs des Projekts sowie Bereitstellungsoptionen m\u00f6glichst an bekannte Standards anzun\u00e4hern. Es besteht zwar auch die M\u00f6glichkeit, Quellcode als Artefakt auf der eigenen Webpr\u00e4senz zum Download anzubieten, wodurch jedoch die Beteiligung als Prozess deutlich erschwert wird.<\/p>\n<h3>Auswahl des Open-Source-Hostings<\/h3>\n<p>Aus technischer Sicht ist die Auswahl der Publikationsplattform f\u00fcr OSS-Projekte irrelevant; die Auswahl orientiert sich prim\u00e4r an weiterf\u00fchrenden Bestimmungen der Ausschreibung. Eine h\u00e4ufig in \u00f6ffentlichen Ausschreibungen angetroffene Anforderung ist beispielsweise die Ver\u00f6ffentlichung auf der <a href=\"https:\/\/www.cio.bund.de\/Webs\/CIO\/DE\/digitale-loesungen\/digitale-souveraenitaet\/open-code\/open-code-node.html\">OpenCoDE Plattform<\/a>, die eine GitLab-Instanz mit einem durch Metadaten angereicherten Softwareverzeichnis erg\u00e4nzt.<\/p>\n<p>Es existiert eine Vielzahl weiterer Plattformen, die gem\u00e4\u00df der gestellten Anforderungen ausgew\u00e4hlt werden m\u00fcssen. Ein Vorteil gro\u00dfer Plattformen besteht darin, dass bereits viele User vorhanden sind. Dadurch wird die Interaktionsh\u00fcrde mit (neuen) Projekten gesenkt, da keine separate Registrierung o. \u00e4. notwendig ist und die User oft mit den Prozessen in solchen Projekten vertraut sind.<\/p>\n<p>Auch besteht die M\u00f6glichkeit, in eigener Infrastruktur ein Quellcode-Hosting zu betreiben. Jedoch ist der Betrieb solcher Plattformen stets mit Wartungsaufwand verbunden, der im Vorhinein eingeplant werden muss.<\/p>\n<h3>Gestaltung von \u00f6ffentlichen Quellcode-Repositories<\/h3>\n<p>Ma\u00dfnahmen in Repostitories von Open-Source-Projekten \u00e4hneln in vielerlei Gesichtspunkten einer Form der Suchmaschinenoptimierung, wie sie bei Websites angewendet wird. Die Readme-Datei stellt in diesen Repositories den zentralen Einstiegs- und Pr\u00e4sentationspunkt dar und sollte daher stets die wichtigsten Informationen beinhalten. In vielen Quellcode-Hostings wird die Readme-Datei durch eine Textdatei im Markdown-Format als HTML dargestellt, sodass dem Eigent\u00fcmer des Repositories grunds\u00e4tzliche Gestaltungsm\u00f6glichkeiten gegeben werden. Auch k\u00f6nnen Logos eingebracht werden, um eine Projektidentit\u00e4t in die Ver\u00f6ffentlichung einzubringen.<\/p>\n<p>Ein Readme sollte dem User die M\u00f6glichkeit bieten, alle wichtigen Informationen zum Projekt abzurufen. Dazu z\u00e4hlen:<\/p>\n<ul>\n<li>Name und Beschreibung<\/li>\n<li>Konfigurations und Installationsanweisungen<\/li>\n<li>Lizenz<\/li>\n<li>Vermerke auf Beteiligungsm\u00f6glichkeiten und Limitierungen<\/li>\n<li>Hinweise zu Meldeketten f\u00fcr sicherheitsrelevante Themen<\/li>\n<\/ul>\n<p>Um eine Beteilgung freiwilliger User auf OSS zu erleichtern, m\u00fcssen Projekte Grundstandards im Bereich der Softwarequalit\u00e4t erf\u00fcllen. Hierzu z\u00e4hlt die Deklaration und Einhaltung von Konventionen und Standards innerhalb des Projekts oder auch die Verwendung von automatisierten Prozessen zur Ermittlung von Metriken der aktuell vorliegenden Qualit\u00e4t. Die Ergebnisse dieser \u00dcberpr\u00fcfungen k\u00f6nnen als Bild (h\u00e4ufig als sogenannte Badge realisiert) im Readme eingebettet werden, sodass neuen Usern unmittelbar ein \u00dcberblick \u00fcber qualitative Merkmale des Projekts vermittelt werden kann.<\/p>\n<h3>Prozesse f\u00fcr die Ver\u00f6ffentlichung in Open-Source-Repositories<\/h3>\n<p>Im Folgenden werden drei exemplarische Ver\u00f6ffentlichungsans\u00e4tze f\u00fcr quelloffene Projekte vorgestellt. Die Prozesse unterscheiden sich in dem m\u00f6glichen Grad der Beteiligung und eignen sich entweder f\u00fcr eine unidrektionale oder eine bidirektionale Ver\u00f6ffentlichungsrichtung, die sich je nach vorliegender Situation und gestellten Anforderungen ergibt. Nat\u00fcrlich ist es auch m\u00f6glich, verschiedene Ans\u00e4tze zu kombinieren, sofern es die Ausgangslage erfordert.<\/p>\n<h4>Releasegebunden<\/h4>\n<figure id=\"attachment_12231\" aria-describedby=\"caption-attachment-12231\" style=\"width: 698px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-12231 size-large\" src=\"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2024\/04\/Releases.drawio-698x376.png\" alt=\"\u00c4nderungshistorie bei releasegebundener Ver\u00f6ffentlichung (mit Open Source f\u00fcr \u00f6ffentliche Verwaltung)\" width=\"698\" height=\"376\" srcset=\"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2024\/04\/Releases.drawio-698x376.png 698w, https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2024\/04\/Releases.drawio-400x216.png 400w, https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2024\/04\/Releases.drawio-768x414.png 768w, https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2024\/04\/Releases.drawio.png 1006w\" sizes=\"auto, (max-width: 698px) 100vw, 698px\" \/><figcaption id=\"caption-attachment-12231\" class=\"wp-caption-text\">\u00c4nderungshistorie bei releasegebundener Ver\u00f6ffentlichung<\/figcaption><\/figure>\n<p>Der erste Ansatz ist die releasegebundene, summierende Ver\u00f6ffentlichung. Bei diesem Vorgehen geschieht die Entwicklung in einem geschlossenen Versionskontrollsystem und nur fest definierte Versionen sollten als Kopie ver\u00f6ffentlicht werden. Dieses Verfahren kann zur nachtr\u00e4glichen Ver\u00f6ffentlichung von Bestandssoftware genutzt werden, bei der die Historie der \u00c4nderungen (in der Abbildung durch C1-C4 repr\u00e4sentiert) nicht 1:1, oder nur in gefilterter Form, ver\u00f6ffentlicht werden soll. Dieser Filter kann auch eine (manuelle) Qualit\u00e4tssicherung beinhalten, die auch als Abnahmeschritt genutzt werden kann, um den Abfluss von Geheimnissen aus dem Code zu vermeiden.<\/p>\n<p>Der Entwicklungsverlauf, inklusive der Kommentare der einzelnen Commits, geht folglich f\u00fcr die \u00d6ffentlichkeit verloren, sodass das Nachvollziehen gewisser Entscheidungen im Code erschwert werden k\u00f6nnte.<\/p>\n<p>Durch die (automatisierte) Zusammenfassung des Bearbeitungsverlaufs ergibt sich ein unidirektionaler Fluss von \u00c4nderungen, der vom eigenen VCS zum OSS VCS f\u00fchrt. Beteiligungen von au\u00dfen sind hierdurch nur durch h\u00e4ndische R\u00fcckf\u00fchrung m\u00f6glich. Dies erfordert die Definition eines transparenten, verst\u00e4ndlichen Prozesses, der auch nach au\u00dfen kommuniziert werden muss. Nat\u00fcrlich k\u00f6nnen nachgelagerte Prozesse auch kompilierte Artefakte f\u00fcr den User bereitstellen.<\/p>\n<p>Um diese Ver\u00f6ffentlichung effizient und konsistent durchzuf\u00fchren, empfiehlt es sich, den Prozess \u00fcber eine CI\/CD-Pipeline zu automatisieren. Der simpelste Prozess, den man abbilden kann, ist das Kopieren des Repository-Inhalts zum Stand der Version in das andere Repository, potenziell auch mit einer automatischen Filterung von internen Inhalten (bspw. Konfigurationsdateien). Je nach Technologie gibt es auch Tools, die das unterst\u00fctzen k\u00f6nnen. So kann man zum Beispiel f\u00fcr Maven-basierte Projekte das Apache Maven AntRun Plugin verwenden, das M\u00f6glichkeiten f\u00fcr eine gefilterte Synchronisation zwischen Ordnern bietet.<\/p>\n<table style=\"border: 1px solid #b3adad; padding: 5px;\">\n<tbody>\n<tr>\n<th style=\"border: 1px solid #b3adad; padding: 5px; text-align: left; background: #f0f0f0; width: 50%;\" scope=\"col\">Nutzen<\/th>\n<th style=\"border: 1px solid #b3adad; padding: 5px; text-align: left; background: #f0f0f0; width: 50%;\" scope=\"col\">Herausforderungen<\/th>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid #b3adad; padding: 5px; text-align: left;\">\n<ul>\n<li>Bereinigung der Historie m\u00f6glich<\/li>\n<li>Eignet sich f\u00fcr Bestandsprojekte oder Erstver\u00f6ffentlichungen<\/li>\n<\/ul>\n<\/td>\n<td style=\"border: 1px solid #b3adad; padding: 5px; text-align: left;\">\n<ul>\n<li>Entwicklungsverlauf geht verloren<\/li>\n<li>Beteiligung von au\u00dfen schwierig (\u00bbArchivcharakter\u00ab)<\/li>\n<li>Macht CI\/CD-Pipeline notwendig<\/li>\n<li>Manuelle Komponente f\u00fcr Ver\u00f6ffentlichung notwendig<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h4>Multiple Origin<\/h4>\n<figure id=\"attachment_12232\" aria-describedby=\"caption-attachment-12232\" style=\"width: 698px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-12232\" src=\"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2024\/04\/multiple_origin.drawio-698x236.png\" alt=\"\u00c4nderungshistorie bei Multiple Origin Ver\u00f6ffentlichung\" width=\"698\" height=\"236\" srcset=\"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2024\/04\/multiple_origin.drawio-698x236.png 698w, https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2024\/04\/multiple_origin.drawio-400x135.png 400w, https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2024\/04\/multiple_origin.drawio-768x260.png 768w, https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2024\/04\/multiple_origin.drawio.png 1306w\" sizes=\"auto, (max-width: 698px) 100vw, 698px\" \/><figcaption id=\"caption-attachment-12232\" class=\"wp-caption-text\">\u00c4nderungshistorie bei Multiple-Origin-Ver\u00f6ffentlichung<\/figcaption><\/figure>\n<p>Wenn die Historie und die Commits erhalten werden k\u00f6nnen, kann auch der Ansatz des Multiple Origins eingesetzt werden. Dieser Ansatz orientiert sich an Funktionen von Versionskontrollsystemen, bei denen der Code in mehreren Systemen abgelegt wird (\u00bbgit remotes&#8220;). Bei diesem Ansatz ist es wichtig, ein f\u00fchrendes System zu definieren, hier exemplarisch das eigene VCS.<\/p>\n<p>Als Ergebnis fungiert das Open-Source-Repository als Spiegel. Aus technischer Sicht ist dieser Ansatz eine schlanke L\u00f6sung, da viele VCS nativ Mirroring unterst\u00fctzen. Man kann dies auch auf bestimmte Branches limitieren, sodass man intern auch noch an neuen Funktionen arbeiten kann, bevor diese \u00f6ffentlich sind. Dies kann beispielsweise auch f\u00fcr sicherheitskritische Arbeiten relevant sein.<\/p>\n<p>Grunds\u00e4tzlich hat dieser Ansatz nur eine Richtung. Da die Historie und somit die Kompalibit\u00e4t von Branches zwischen OSS-Repository und eigenem VCS durch das Spiegelverh\u00e4ltnis vorhanden ist, k\u00f6nnen auch User Vorschl\u00e4ge auf Basis des OSS VCS unterbreiten. Anders als beim zuvor demonstrierten Ansatz k\u00f6nnen \u00c4nderungsvorschl\u00e4ge zwischen beiden VCS ausgetauscht werden. Jedoch ist hier auch eine klare Definition des Beteiligungsprozesses notwendig, der auch Moderationsaufwand erzeugt. Das Thema der Moderation wird im Verlauf des Beitrags noch n\u00e4her beleuchtet.<\/p>\n<p>Es sollte nachvollziehbar definiert werden, wie oft eine Synchronisation erfolgt, um Asynchronit\u00e4t der Spiegelung zu vermeiden. Diese Information sollte dabei auch im OSS-Repository einsehbar sein. Im Unterschied zum releasegebundenen Ansatz k\u00f6nnen hier auch hochfrequente Synchronisationen, z. B. t\u00e4glich oder mit jedem Commit, vorgenommen werden. Daher eignet sich dieser Ansatz auch f\u00fcr Szenarien, bei denen das OSS-Repository m\u00f6glichst aktuell gehalten werden muss.<\/p>\n<p>Entwickler m\u00fcssen bei diesem Ansatz zudem auch immer darauf achten, auf dem richtigen Origin zu arbeiten und nicht versehentlich in das Open-Source-Repository zu pushen.<\/p>\n<table style=\"border: 1px solid #b3adad; padding: 5px;\">\n<tbody>\n<tr>\n<th style=\"border: 1px solid #b3adad; padding: 5px; text-align: left; background: #f0f0f0; width: 50%;\" scope=\"col\">Nutzen<\/th>\n<th style=\"border: 1px solid #b3adad; padding: 5px; text-align: left; background: #f0f0f0; width: 50%;\" scope=\"col\">Herausforderungen<\/th>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid #b3adad; padding: 5px; text-align: left;\">\n<ul>\n<li>Umsetzung technisch schlank<\/li>\n<li>OSS Repo dient als 1:1 Spiegel<\/li>\n<\/ul>\n<\/td>\n<td style=\"border: 1px solid #b3adad; padding: 5px; text-align: left;\">\n<table class=\"wrapped relative-table confluenceTable\">\n<tbody>\n<tr>\n<td class=\"confluenceTd\">\n<ul>\n<li>Erzeugt Moderationsaufwand<\/li>\n<li>Verdopplung der Quellcodeverwaltung \u2192 Definition eines f\u00fchrenden Systems zwingend notwendig<\/li>\n<li>Erfordert klare Regelungen und Policies<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h4>Direkt quelloffen<\/h4>\n<figure id=\"attachment_12234\" aria-describedby=\"caption-attachment-12234\" style=\"width: 698px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-12234\" src=\"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2024\/04\/OSS_graph.drawio-698x262.png\" alt=\"\u00c4nderungshistorie bei Open Source Ver\u00f6ffentlichung\" width=\"698\" height=\"262\" srcset=\"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2024\/04\/OSS_graph.drawio-698x262.png 698w, https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2024\/04\/OSS_graph.drawio-400x150.png 400w, https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2024\/04\/OSS_graph.drawio-768x288.png 768w, https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2024\/04\/OSS_graph.drawio.png 1126w\" sizes=\"auto, (max-width: 698px) 100vw, 698px\" \/><figcaption id=\"caption-attachment-12234\" class=\"wp-caption-text\">\u00c4nderungshistorie bei Open-Source-Ver\u00f6ffentlichung<\/figcaption><\/figure>\n<p>In diesem Arbeitsmodus wird die Entwicklung \u00f6ffentlich vorgenommen, sodass auch Entwicklungs- und Designentscheidungen transparent nachverfolgt werden k\u00f6nnen.<\/p>\n<p>Durch die transparente Entwicklung ergibt sich im Vergleich zu den zuvor vorgestellten Ans\u00e4tzen ein zus\u00e4tzlicher Moderationsaufwand, da neue Tickets sowie Diskussionen und Bemerkungen bearbeitet werden m\u00fcssen. Es empfiehlt sich hier eine Unters\u00fctzung durch Automatisierungsprozesse, z. B. zur Kennzeichnung neuer Tickets. \u00c4hnlich wie bei dem zuvor dargestellten Spiegelungsansatz m\u00fcssen auch hier Regeln definiert werden, um Ver\u00f6ffentlichungen \u00bbaus Versehen\u00ab zu vermeiden. Im Unterschied zu den bereits demonstrierten Ans\u00e4tzen entf\u00e4llt hier die Notwendigkeit von Spiegeln oder mehreren VCS.<\/p>\n<p>Bei der Beteiligung von au\u00dfen empfiehlt es sich, Funktionen des Quellcodeverwaltungssystems auszureizen und z. B. die Funktion von Pull-\/ Merge-Requests zu nutzen, bei denen der beitragende User auf Basis einer modifizierten Kopie (\u00bbFork\u00ab) seine \u00c4nderungen vorbereitet und diese dann als \u00c4nderungsvorschlag (\u00bbPull Request\u00ab) bereitstellt. Auch k\u00f6nnen diese Vorschl\u00e4ge diskutiert werden, sodass Annahme oder Ablehnung von Vorschl\u00e4gen transparent gemacht werden kann. Dadurch entf\u00e4llt der Bedarf eines Medienbruchs, da Diskussionen z. B. nicht getrennt \u00fcber E-Mail vorgenommen werden m\u00fcssen.<\/p>\n<p>Insbesondere bei extern bereitgestellten Quellcodeverwaltungen au\u00dferhalb der eigenen Infrastruktur sollte bedacht werden, dass die Anbindung eigener Build-Systeme an externe VCS durch eine Verbindung von au\u00dfen mit Sicherheitsrisiken verbunden ist, die durch ein geeignetes Konzept gehandhabt werden muss.<\/p>\n<table style=\"border: 1px solid #b3adad; padding: 5px;\">\n<tbody>\n<tr>\n<th style=\"border: 1px solid #b3adad; padding: 5px; text-align: left; background: #f0f0f0; width: 50%;\" scope=\"col\">Nutzen<\/th>\n<th style=\"border: 1px solid #b3adad; padding: 5px; text-align: left; background: #f0f0f0; width: 50%;\" scope=\"col\">Herausforderungen<\/th>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid #b3adad; padding: 5px; text-align: left;\">\n<ul>\n<li>Voller OSS-\u00bbEffekt\u00ab<\/li>\n<li>Transparente Beteiligung<\/li>\n<\/ul>\n<\/td>\n<td style=\"border: 1px solid #b3adad; padding: 5px; text-align: left;\">\n<ul>\n<li>Hoher Moderationsaufwand<\/li>\n<li>Funktioniert am besten auf etablierten Quellcode-Hosting-Plattformen<\/li>\n<li>Anbindung eigener Infrastruktur muss auch in Sicherheitskonzepten bedacht werden<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Moderation in Open-Source-Projekten<\/h3>\n<p>Open-Source-Projekte ben\u00f6tigen ein Moderationselement. Fundament der Moderation sind klar definierte Prozesse, die auch f\u00fcr Externe dargestellt werden m\u00fcssen.<\/p>\n<p>Es hat sich in Open-Source-Projekten etabliert, diese Prozesse und Hilfestellungen als Markdown-Dateien im Repository beizuf\u00fcgen und somit f\u00fcr Nutzer direkt einsehbar zumachen. Es sind dabei mehrere dieser Informationspunkte denkbar. Eine Auswahl m\u00f6glicher Themen ist der Tabelle zu entnehmen:<\/p>\n<table style=\"border: 1px solid #b3adad; padding: 5px;\">\n<tbody>\n<tr>\n<th style=\"border: 1px solid #b3adad; padding: 5px; text-align: left; background: #f0f0f0;\" scope=\"col\">Datei<\/th>\n<th style=\"border: 1px solid #b3adad; padding: 5px; text-align: left; background: #f0f0f0;\" scope=\"col\">Bedeutung<\/th>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid #b3adad; padding: 5px; text-align: left;\">CODE_OF_CONDUCT.md<\/td>\n<td style=\"border: 1px solid #b3adad; padding: 5px; text-align: left;\">Definiert Community-Standards. Hierzu z\u00e4hlt z. B. eine Art Netiquette, die bei Diskussionen aufrechterhalten werden muss.<\/td>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid #b3adad; padding: 5px; text-align: left;\">SECURITY.md<\/td>\n<td style=\"border: 1px solid #b3adad; padding: 5px; text-align: left;\">Definiert den Meldeprozess (\u00bbresponsible disclosure\u00ab) f\u00fcr Sicherheitsl\u00fccken.<\/td>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid #b3adad; padding: 5px; text-align: left;\">CONTRIBUTING.md<\/td>\n<td style=\"border: 1px solid #b3adad; padding: 5px; text-align: left;\">Definiert den Prozess, wie User Inhalte besteuern k\u00f6nnen. Kann auch dazu genutzt werden, bestimmte Beteiligungen auszuschlie\u00dfen, z. B. wenn die \u00c4nderungen nicht eingespielt werden k\u00f6nnen.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p>F\u00fcr alle Beteiligungsprozesse empfiehlt sich ein Ansatz nach dem KISS-Prinzip (\u00bbkeep it simple, stupid\u00ab), da durch definierte komplexe Prozesse der Moderationsaufwand steigen kann und sich die Einstiegsh\u00fcrde f\u00fcr Dritte erh\u00f6ht.<\/p>\n<p>Bei der Moderation von \u00c4nderungsanfragen sollten diese stets als Vorschlag gehandhabt werden. Zudem muss eine saubere und nachvollziehbare Kommunikation erfolgen, wenn \u00c4nderungen abgelehnt werden. \u00c4nderungsvorschl\u00e4ge m\u00fcssen vor der \u00dcbernahme (\u00bbmerge\u00ab) auf Erf\u00fcllung von Anforderungen gepr\u00fcft werden, um rechtliche oder technische Probleme oder auch die Angriffsfl\u00e4che f\u00fcr Supply-Chain-Angriffe zu reduzieren. Hierzu empfiehlt sich ein klar definierter Review-Prozess, der auch in einer CONTRIBUTING.md-Datei beschrieben werden sollte.<\/p>\n<p>Automatisierung kann in Open-Source-Projekten h\u00e4ndische Aufgaben effizient gestalten. Exemplarische M\u00f6glichkeiten sind:<\/p>\n<ul>\n<li>Kennzeichnung neuer, \u00fcberalterter oder ung\u00fcltiger Tickets mit Schl\u00fcsselw\u00f6rtern (\u00bbTags\u00ab)<\/li>\n<li>Security-Checks und Dependency-Pr\u00fcfungen<\/li>\n<\/ul>\n<h3>Vermeidung von Geheimnisverlusten bei der OSS-Publikation<\/h3>\n<p>Software ben\u00f6tigt Konfigurationswerte. Es ist immer wieder m\u00f6glich, dass Schl\u00fcssel oder interne Konfigurationsdateien in ein Repository eingecheckt werden, was zu einem Geheimnisverlust f\u00fchrt und im schlimmsten Fall zu einer Infiltration der Infrastruktur und einem Datenabfluss f\u00fchren kann. Bei der Ver\u00f6ffentlichung von Software als Open Source gibt es Werkzeuge, um dies zu vermeiden. Vor der Ver\u00f6ffentlichung m\u00fcssen Projekte einem Review unterzogen werden, um kritische Daten zu finden. Software kann diesen Prozess unterst\u00fctzen. Der bestehende Verlauf des Projekts in der Historie sollte hier ebenfalls bedacht werden, da auch entfernte Inhalte aus der Historie wiederhergestellt werden k\u00f6nnen.<\/p>\n<p>Die vorgestellten Ans\u00e4tze k\u00f6nnen f\u00fcr die (Erst-)Ver\u00f6ffentlichung kombiniert werden. Als Startpunkt f\u00fcr ein bestehendes Projekt kann der releasegebundene Ansatz verwendet werden. Sobald der \u00dcbergang ins OSS VCS abgeschlossen ist, kann die Entwicklung dort oder \u00fcber den Spiegelansatz fortgef\u00fchrt werden.<\/p>\n<figure id=\"attachment_12233\" aria-describedby=\"caption-attachment-12233\" style=\"width: 698px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-12233 size-large\" src=\"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2024\/04\/OSS-Pfad.drawio-698x68.png\" alt=\"Prozess f\u00fcr schrittweisen \u00dcbergang zu vollst\u00e4ndigem Open Source Prozess ( Open Source \u00f6ffentliche Verwaltung)\" width=\"698\" height=\"68\" srcset=\"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2024\/04\/OSS-Pfad.drawio-698x68.png 698w, https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2024\/04\/OSS-Pfad.drawio-400x39.png 400w, https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2024\/04\/OSS-Pfad.drawio-768x75.png 768w, https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2024\/04\/OSS-Pfad.drawio.png 1462w\" sizes=\"auto, (max-width: 698px) 100vw, 698px\" \/><figcaption id=\"caption-attachment-12233\" class=\"wp-caption-text\">Prozess f\u00fcr den schrittweisen \u00dcbergang zu einem vollst\u00e4ndigen Open-Source-Prozess<\/figcaption><\/figure>\n<p>Insbesondere in Cloud-native Umgebungen haben Images einen gro\u00dfen Stellenwert. Im Rahmen von CI\/CD-Pipelines werden Repositories zu Container-Images kombiniert, was auch in Open-Source-Projekten realisiert werden kann. Ein konzeptioneller Ansatz zur Vermeidung von Geheimnisverlusten sind hierbei \u00bbdumme\u00ab Images. Ein solches Image ist kontextunabh\u00e4ngig und beinhaltet keinerlei Geheimnisse. Jede Form von Konfiguration wird \u00fcber die Umgebung zur Laufzeit vorgehalten, z. B. via Volumes oder Umgebungsvariablen.<\/p>\n<p>Durch diesen Prozess wird auch die Wiederverwendbarkeit von Images erh\u00f6ht, da keine separaten Konfigurationsanpassungen in den Images vorgenommen werden m\u00fcssen, weil keine Konfiguration Bestandteil des Images ist.<\/p>\n<h3>Fazit: Unterschiedliche Wege zu Open Source<\/h3>\n<p>Die in diesem Artikel vorgestellten Ans\u00e4tze behandeln eine exemplarische Menge aus denkbaren Prozessen, um Softwareprojekte als Open Source zu ver\u00f6ffentlichen, was insbesondere f\u00fcr die \u00f6ffentliche Verwaltung zunehmend relevant ist. Die Ans\u00e4tze unterscheiden sich dabei im Grad der M\u00f6glichkeiten der Beteiligung, die je nach vorhandener Situation unterschiedlichen Nutzen und verschiedene Herausforderungen aufweisen.<\/p>\n<p>Eine Verkettung der Ans\u00e4tze bietet einen Pfad, auch bestehende Software in eine OSS zu \u00fcberf\u00fchren. In Kombination mit Review-Prozessen und einer Optimierung des Konfigurationsmanagements wird die Gefahr des Abflusses von Geheimnissen reduziert.<\/p>\n<p>In jedem Fall empfiehlt es sich, mit den angebotenen Funktionalit\u00e4ten des ausgew\u00e4hlten Quellcode-Hostings zu arbeiten und diese durch sinnvolle Automatisierung zu erg\u00e4nzen. Jedoch ist in allen F\u00e4llen der Faktor der Moderation notwendig und einzuplanen, um die Kommunikation mit Dritten transparent zu gestalten.<\/p>\n<p>Erfahrungswerte zeigen auch, dass man sich fr\u00fchzeitig mit der Entscheidungsfindung f\u00fcr passende Lizenzen besch\u00e4ftigen sollte, da die Entscheidung f\u00fcr eine bestimmte Lizenz starke Auswirkungen auf die Vermarktbarkeit eines Produktes und zuk\u00fcnftige Entwicklungsprozesse haben kann.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Seit einigen Jahren gibt es immer mehr Bestrebungen, Open Source Software (OSS) in allen Bereichen zu nutzen, in denen es m\u00f6glich ist. In Richtlinien zur Vergabe \u00f6ffentlicher Projekte finden immer h\u00e4ufiger Klauseln Einzug, welche die Realisierung als Open Source Software&#8230;<\/p>\n","protected":false},"author":154,"featured_media":12244,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[211,424],"tags":[370,31,233],"coauthors":[654,444],"class_list":["post-12221","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-digitale-transformation","category-smart-city","tag-open-source","tag-smart-rural-areas-smart-cities","tag-software-engineering"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Open Source in der \u00d6ffentlichen Verwaltung: Wir zeigen geeignete Open-Source-Prozesse f\u00fcr (Bestands-)Software - Blog des Fraunhofer IESE<\/title>\n<meta name=\"description\" content=\"public money, public code: Fraunhofer zeigt, wie Open Source f\u00fcr Projekte der \u00f6ffentlichen Verwaltung funktioniert.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.iese.fraunhofer.de\/blog\/open-source-in-der-oeffentlichen-verwaltung-wir-zeigen-geeignete-open-source-prozesse-fuer-bestands-software\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Open Source in der \u00d6ffentlichen Verwaltung: Wir zeigen geeignete Open-Source-Prozesse f\u00fcr (Bestands-)Software - Blog des Fraunhofer IESE\" \/>\n<meta property=\"og:description\" content=\"public money, public code: Fraunhofer zeigt, wie Open Source f\u00fcr Projekte der \u00f6ffentlichen Verwaltung funktioniert.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.iese.fraunhofer.de\/blog\/open-source-in-der-oeffentlichen-verwaltung-wir-zeigen-geeignete-open-source-prozesse-fuer-bestands-software\/\" \/>\n<meta property=\"og:site_name\" content=\"Fraunhofer IESE\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/FraunhoferIESE\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-04-23T13:45:17+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2024\/04\/open-source-oeffentliche-verwaltung.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"400\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Steffen Hupp, Christoph M\u00fcller\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@FraunhoferIESE\" \/>\n<meta name=\"twitter:site\" content=\"@FraunhoferIESE\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Steffen Hupp\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"13\u00a0Minuten\" \/>\n\t<meta name=\"twitter:label3\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data3\" content=\"Steffen Hupp, Christoph M\u00fcller\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/open-source-in-der-oeffentlichen-verwaltung-wir-zeigen-geeignete-open-source-prozesse-fuer-bestands-software\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/open-source-in-der-oeffentlichen-verwaltung-wir-zeigen-geeignete-open-source-prozesse-fuer-bestands-software\\\/\"},\"author\":{\"name\":\"Steffen Hupp\",\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/#\\\/schema\\\/person\\\/63d19e84dcfbe6af3ec6d3fcf48105be\"},\"headline\":\"Open Source in der \u00d6ffentlichen Verwaltung: Wir zeigen geeignete Open-Source-Prozesse f\u00fcr (Bestands-)Software\",\"datePublished\":\"2024-04-23T13:45:17+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/open-source-in-der-oeffentlichen-verwaltung-wir-zeigen-geeignete-open-source-prozesse-fuer-bestands-software\\\/\"},\"wordCount\":2558,\"publisher\":{\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/open-source-in-der-oeffentlichen-verwaltung-wir-zeigen-geeignete-open-source-prozesse-fuer-bestands-software\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/04\\\/open-source-oeffentliche-verwaltung.jpg\",\"keywords\":[\"Open Source\",\"Smart Rural Areas \\\/ Smart Cities\",\"Software Engineering\"],\"articleSection\":[\"Digitale Transformation\",\"Smart City\"],\"inLanguage\":\"de\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/open-source-in-der-oeffentlichen-verwaltung-wir-zeigen-geeignete-open-source-prozesse-fuer-bestands-software\\\/\",\"url\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/open-source-in-der-oeffentlichen-verwaltung-wir-zeigen-geeignete-open-source-prozesse-fuer-bestands-software\\\/\",\"name\":\"Open Source in der \u00d6ffentlichen Verwaltung: Wir zeigen geeignete Open-Source-Prozesse f\u00fcr (Bestands-)Software - Blog des Fraunhofer IESE\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/open-source-in-der-oeffentlichen-verwaltung-wir-zeigen-geeignete-open-source-prozesse-fuer-bestands-software\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/open-source-in-der-oeffentlichen-verwaltung-wir-zeigen-geeignete-open-source-prozesse-fuer-bestands-software\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/04\\\/open-source-oeffentliche-verwaltung.jpg\",\"datePublished\":\"2024-04-23T13:45:17+00:00\",\"description\":\"public money, public code: Fraunhofer zeigt, wie Open Source f\u00fcr Projekte der \u00f6ffentlichen Verwaltung funktioniert.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/open-source-in-der-oeffentlichen-verwaltung-wir-zeigen-geeignete-open-source-prozesse-fuer-bestands-software\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/open-source-in-der-oeffentlichen-verwaltung-wir-zeigen-geeignete-open-source-prozesse-fuer-bestands-software\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/open-source-in-der-oeffentlichen-verwaltung-wir-zeigen-geeignete-open-source-prozesse-fuer-bestands-software\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/04\\\/open-source-oeffentliche-verwaltung.jpg\",\"contentUrl\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/04\\\/open-source-oeffentliche-verwaltung.jpg\",\"width\":800,\"height\":400,\"caption\":\"Software development branching strategy process workflow with flowchart diagram showing branch, merging, pull request, commit, master, development, and release version. Distributed version control.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/open-source-in-der-oeffentlichen-verwaltung-wir-zeigen-geeignete-open-source-prozesse-fuer-bestands-software\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Open Source in der \u00d6ffentlichen Verwaltung: Wir zeigen geeignete Open-Source-Prozesse f\u00fcr (Bestands-)Software\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/\",\"name\":\"Fraunhofer IESE\",\"description\":\"Blog des Fraunhofer-Institut f\u00fcr Experimentelles Software Engineering\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/#organization\",\"name\":\"Fraunhofer IESE\",\"url\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/wp-content\\\/uploads\\\/2016\\\/08\\\/fhg_iese_logo.png\",\"contentUrl\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/wp-content\\\/uploads\\\/2016\\\/08\\\/fhg_iese_logo.png\",\"width\":183,\"height\":50,\"caption\":\"Fraunhofer IESE\"},\"image\":{\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/FraunhoferIESE\\\/\",\"https:\\\/\\\/x.com\\\/FraunhoferIESE\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/fraunhoferiese\\\/\",\"https:\\\/\\\/www.youtube.com\\\/c\\\/FraunhoferIESE\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/#\\\/schema\\\/person\\\/63d19e84dcfbe6af3ec6d3fcf48105be\",\"name\":\"Steffen Hupp\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/09\\\/Hupp_C97A0854_web-96x96.jpgfc9b288ce07e06ae831dd9c9d776ee71\",\"url\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/09\\\/Hupp_C97A0854_web-96x96.jpg\",\"contentUrl\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/09\\\/Hupp_C97A0854_web-96x96.jpg\",\"caption\":\"Steffen Hupp\"},\"description\":\"Steffen Hupp ist seit 2015 als Full-Stack-Entwickler in der Abteilung \u00bbSmart City Engineering\u00ab am Fraunhofer IESE in Kaiserslautern t\u00e4tig. Er absolvierte seinen Master in Informatik mit Schwerpunkt Software Engineering an der Technischen Universit\u00e4t Kaiserslautern. Er ist verantwortlich f\u00fcr die Entwicklung und technische Konzeption von mobilen Apps, Cross-Plattform-L\u00f6sungen und (cloudbasierten) Backend-Systemen, sowie Operations.\",\"url\":\"https:\\\/\\\/www.iese.fraunhofer.de\\\/blog\\\/author\\\/steffen-hupp\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Open Source in der \u00d6ffentlichen Verwaltung: Wir zeigen geeignete Open-Source-Prozesse f\u00fcr (Bestands-)Software - Blog des Fraunhofer IESE","description":"public money, public code: Fraunhofer zeigt, wie Open Source f\u00fcr Projekte der \u00f6ffentlichen Verwaltung funktioniert.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.iese.fraunhofer.de\/blog\/open-source-in-der-oeffentlichen-verwaltung-wir-zeigen-geeignete-open-source-prozesse-fuer-bestands-software\/","og_locale":"de_DE","og_type":"article","og_title":"Open Source in der \u00d6ffentlichen Verwaltung: Wir zeigen geeignete Open-Source-Prozesse f\u00fcr (Bestands-)Software - Blog des Fraunhofer IESE","og_description":"public money, public code: Fraunhofer zeigt, wie Open Source f\u00fcr Projekte der \u00f6ffentlichen Verwaltung funktioniert.","og_url":"https:\/\/www.iese.fraunhofer.de\/blog\/open-source-in-der-oeffentlichen-verwaltung-wir-zeigen-geeignete-open-source-prozesse-fuer-bestands-software\/","og_site_name":"Fraunhofer IESE","article_publisher":"https:\/\/www.facebook.com\/FraunhoferIESE\/","article_published_time":"2024-04-23T13:45:17+00:00","og_image":[{"width":800,"height":400,"url":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2024\/04\/open-source-oeffentliche-verwaltung.jpg","type":"image\/jpeg"}],"author":"Steffen Hupp, Christoph M\u00fcller","twitter_card":"summary_large_image","twitter_creator":"@FraunhoferIESE","twitter_site":"@FraunhoferIESE","twitter_misc":{"Verfasst von":"Steffen Hupp","Gesch\u00e4tzte Lesezeit":"13\u00a0Minuten","Written by":"Steffen Hupp, Christoph M\u00fcller"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.iese.fraunhofer.de\/blog\/open-source-in-der-oeffentlichen-verwaltung-wir-zeigen-geeignete-open-source-prozesse-fuer-bestands-software\/#article","isPartOf":{"@id":"https:\/\/www.iese.fraunhofer.de\/blog\/open-source-in-der-oeffentlichen-verwaltung-wir-zeigen-geeignete-open-source-prozesse-fuer-bestands-software\/"},"author":{"name":"Steffen Hupp","@id":"https:\/\/www.iese.fraunhofer.de\/blog\/#\/schema\/person\/63d19e84dcfbe6af3ec6d3fcf48105be"},"headline":"Open Source in der \u00d6ffentlichen Verwaltung: Wir zeigen geeignete Open-Source-Prozesse f\u00fcr (Bestands-)Software","datePublished":"2024-04-23T13:45:17+00:00","mainEntityOfPage":{"@id":"https:\/\/www.iese.fraunhofer.de\/blog\/open-source-in-der-oeffentlichen-verwaltung-wir-zeigen-geeignete-open-source-prozesse-fuer-bestands-software\/"},"wordCount":2558,"publisher":{"@id":"https:\/\/www.iese.fraunhofer.de\/blog\/#organization"},"image":{"@id":"https:\/\/www.iese.fraunhofer.de\/blog\/open-source-in-der-oeffentlichen-verwaltung-wir-zeigen-geeignete-open-source-prozesse-fuer-bestands-software\/#primaryimage"},"thumbnailUrl":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2024\/04\/open-source-oeffentliche-verwaltung.jpg","keywords":["Open Source","Smart Rural Areas \/ Smart Cities","Software Engineering"],"articleSection":["Digitale Transformation","Smart City"],"inLanguage":"de"},{"@type":"WebPage","@id":"https:\/\/www.iese.fraunhofer.de\/blog\/open-source-in-der-oeffentlichen-verwaltung-wir-zeigen-geeignete-open-source-prozesse-fuer-bestands-software\/","url":"https:\/\/www.iese.fraunhofer.de\/blog\/open-source-in-der-oeffentlichen-verwaltung-wir-zeigen-geeignete-open-source-prozesse-fuer-bestands-software\/","name":"Open Source in der \u00d6ffentlichen Verwaltung: Wir zeigen geeignete Open-Source-Prozesse f\u00fcr (Bestands-)Software - Blog des Fraunhofer IESE","isPartOf":{"@id":"https:\/\/www.iese.fraunhofer.de\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.iese.fraunhofer.de\/blog\/open-source-in-der-oeffentlichen-verwaltung-wir-zeigen-geeignete-open-source-prozesse-fuer-bestands-software\/#primaryimage"},"image":{"@id":"https:\/\/www.iese.fraunhofer.de\/blog\/open-source-in-der-oeffentlichen-verwaltung-wir-zeigen-geeignete-open-source-prozesse-fuer-bestands-software\/#primaryimage"},"thumbnailUrl":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2024\/04\/open-source-oeffentliche-verwaltung.jpg","datePublished":"2024-04-23T13:45:17+00:00","description":"public money, public code: Fraunhofer zeigt, wie Open Source f\u00fcr Projekte der \u00f6ffentlichen Verwaltung funktioniert.","breadcrumb":{"@id":"https:\/\/www.iese.fraunhofer.de\/blog\/open-source-in-der-oeffentlichen-verwaltung-wir-zeigen-geeignete-open-source-prozesse-fuer-bestands-software\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.iese.fraunhofer.de\/blog\/open-source-in-der-oeffentlichen-verwaltung-wir-zeigen-geeignete-open-source-prozesse-fuer-bestands-software\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.iese.fraunhofer.de\/blog\/open-source-in-der-oeffentlichen-verwaltung-wir-zeigen-geeignete-open-source-prozesse-fuer-bestands-software\/#primaryimage","url":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2024\/04\/open-source-oeffentliche-verwaltung.jpg","contentUrl":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2024\/04\/open-source-oeffentliche-verwaltung.jpg","width":800,"height":400,"caption":"Software development branching strategy process workflow with flowchart diagram showing branch, merging, pull request, commit, master, development, and release version. Distributed version control."},{"@type":"BreadcrumbList","@id":"https:\/\/www.iese.fraunhofer.de\/blog\/open-source-in-der-oeffentlichen-verwaltung-wir-zeigen-geeignete-open-source-prozesse-fuer-bestands-software\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/www.iese.fraunhofer.de\/blog\/"},{"@type":"ListItem","position":2,"name":"Open Source in der \u00d6ffentlichen Verwaltung: Wir zeigen geeignete Open-Source-Prozesse f\u00fcr (Bestands-)Software"}]},{"@type":"WebSite","@id":"https:\/\/www.iese.fraunhofer.de\/blog\/#website","url":"https:\/\/www.iese.fraunhofer.de\/blog\/","name":"Fraunhofer IESE","description":"Blog des Fraunhofer-Institut f\u00fcr Experimentelles Software Engineering","publisher":{"@id":"https:\/\/www.iese.fraunhofer.de\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.iese.fraunhofer.de\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/www.iese.fraunhofer.de\/blog\/#organization","name":"Fraunhofer IESE","url":"https:\/\/www.iese.fraunhofer.de\/blog\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.iese.fraunhofer.de\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2016\/08\/fhg_iese_logo.png","contentUrl":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2016\/08\/fhg_iese_logo.png","width":183,"height":50,"caption":"Fraunhofer IESE"},"image":{"@id":"https:\/\/www.iese.fraunhofer.de\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/FraunhoferIESE\/","https:\/\/x.com\/FraunhoferIESE","https:\/\/www.linkedin.com\/company\/fraunhoferiese\/","https:\/\/www.youtube.com\/c\/FraunhoferIESE"]},{"@type":"Person","@id":"https:\/\/www.iese.fraunhofer.de\/blog\/#\/schema\/person\/63d19e84dcfbe6af3ec6d3fcf48105be","name":"Steffen Hupp","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2024\/09\/Hupp_C97A0854_web-96x96.jpgfc9b288ce07e06ae831dd9c9d776ee71","url":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2024\/09\/Hupp_C97A0854_web-96x96.jpg","contentUrl":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2024\/09\/Hupp_C97A0854_web-96x96.jpg","caption":"Steffen Hupp"},"description":"Steffen Hupp ist seit 2015 als Full-Stack-Entwickler in der Abteilung \u00bbSmart City Engineering\u00ab am Fraunhofer IESE in Kaiserslautern t\u00e4tig. Er absolvierte seinen Master in Informatik mit Schwerpunkt Software Engineering an der Technischen Universit\u00e4t Kaiserslautern. Er ist verantwortlich f\u00fcr die Entwicklung und technische Konzeption von mobilen Apps, Cross-Plattform-L\u00f6sungen und (cloudbasierten) Backend-Systemen, sowie Operations.","url":"https:\/\/www.iese.fraunhofer.de\/blog\/author\/steffen-hupp\/"}]}},"jetpack_featured_media_url":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-content\/uploads\/2024\/04\/open-source-oeffentliche-verwaltung.jpg","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-json\/wp\/v2\/posts\/12221","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-json\/wp\/v2\/users\/154"}],"replies":[{"embeddable":true,"href":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-json\/wp\/v2\/comments?post=12221"}],"version-history":[{"count":13,"href":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-json\/wp\/v2\/posts\/12221\/revisions"}],"predecessor-version":[{"id":12293,"href":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-json\/wp\/v2\/posts\/12221\/revisions\/12293"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-json\/wp\/v2\/media\/12244"}],"wp:attachment":[{"href":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-json\/wp\/v2\/media?parent=12221"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-json\/wp\/v2\/categories?post=12221"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-json\/wp\/v2\/tags?post=12221"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.iese.fraunhofer.de\/blog\/wp-json\/wp\/v2\/coauthors?post=12221"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}