Zum Inhalt springen
Offizielle Website – Bundesrepublik Deutschland

Veröffentlichen von Quellcode auf einer offenen Plattform

Wenn Quellcode auf einer offenen Plattform veröffentlicht wird, stärkt es die Unabhängigkeit von einzelnen Software-Anbietern und macht staatliche Handlungen transparent. Es gibt nur wenige Gründe, warum Sie den Quellcode nicht veröffentlichen sollten. Zum Beispiel wenn die Software eine Vorgehensweise implementiert, die gegenüber der Öffentlichkeit geheim gehalten werden soll oder muss.

Wichtig in diesen Entwicklungsphasen
Zuletzt aktualisiert am

Vorgehen

Open Source-Projekte leben davon, dass die Software transparent entwickelt wird. Deshalb sollten Sie darauf bestehen, dass der Quellcode möglichst früh im Entwicklungsprozess in einem Repository veröffentlicht wird.

Die Veröffentlichung

  • ermöglicht, dass die Software weiterentwickelt wird, auch bei einem Wechsel von Entwicklern und Entwicklerinnen

  • ermöglicht, dass die Software von anderen ebenfalls genutzt wird

  • fördert Beteiligung durch Fachexpertise und engagierte Bürger und Bürgerinnen

Frameworks und Lizenzen für Software auswählen

Der Quellcode basiert meist auf Frameworks und Software-Bibliotheken. Damit Sie ihn veröffentlichen können, müssen auch diese unter einer Open-Source-Lizenz stehen.

Open-Source-Lizenz auswählen

Bei der Entwicklung von Software werden viele Frameworks und Software-Bibliotheken eingesetzt, die frei als Open Source-Software zur Verfügung stehen und unter unterschiedlichen Lizenzen veröffentlicht werden. Es wird zwischen zwei Arten unterschieden

  1. Copyleft-Lizenzen verpflichten dazu, die nutzende Software unter derselben Lizenz zu veröffentlichen. Unterschiedliche Copyleft-Lizenzen können zu Konflikten führen.
  2. Freizügige (permissive) Lizenzen stellen keine Forderungen an die nutzende Software.

Bevorzugen Sie freizügige (permissive) Lizenzen, um Konflikte zwischen Lizenzen zu vermeiden.

Zur ersten Auswahl können Sie die filterbare Datenbank der Open Source Intiative zur Hilfe nehmen. Die Inhalte sind in englischer Sprache.
Auf opencode finden Sie zur Unterstützung eine engere Vorauswahl möglicher Lizenzen.

Fordern Sie vom Software-Lieferanten eine (automatisierte) Prüfung der Lizenzen.

Bekannte Frameworks einsetzen

Achten Sie darauf, dass Frameworks, die Sie einsetzen, weit verbreitet sind und keine Abhängigkeiten durch eigene Entwicklung entstehen.

Geeignete Frameworks für die Web-Entwicklung sind zum Beispiel

  • React
  • Angular
  • Vue.js
  • Ruby on Rails

Geeignete Frameworks für die App-Entwicklung sind zum Beispiel

  • React Native
  • Flutter

Geeignete Frameworks für das Backend ist zum Beispiel

  • Spring Boot

Nutzungsrechte sichern

Wenn Sie Software entwickeln lassen, sollten Sie darauf achten, dass Ihnen der Software-Lieferant die zeitlich unbegrenzten Nutzungsrechte am Quellcode überträgt. Dazu gehören auch die Rechte zur Veröffentlichung.

Coding-Richtlinien festlegen

Damit der Code sicher, wartbar und verständlich bleibt, sollten Sie sicherstellen, dass Ihr Software-Lieferant sich an die Coding-Richtlinien hält. Das können Sie auch vertraglich festhalten. Nutzen Sie dafür öffentlich verfügbare Vorgaben wie die Coding- und Security-Grundsätze bei OpenCoDE.

Achten Sie darauf, dass Richtlinien für Aufbau, Benennung, Sicherheit und Tests enthalten sind.

Repository einrichten

Ein Repository ist ein zentraler Speicherort für Quellcode. Dort wird der Quellcode abgelegt und gepflegt.

Er bietet eine Vielzahl an Funktionalitäten, um die gemeinsame Arbeit der Entwickler und Entwicklerinnen sowie Testende zu unterstützen.

openCode hat sich als Plattform für Open Source-Software der öffentlichen Verwaltung in Deutschland etabliert. Dort können Sie das Repository einrichten.

Rollen und Rechte für das Repository festlegen

Jede Rolle hat unterschiedliche Rechte im Repository. Damit seine Funktionalität und Verfügbarkeit gesichert ist, müssen Sie festlegen, wer welche Rolle hat.

Die wichtigsten Rollen, die jedes Repository in ähnlicher Form anbietet:

  1. Repository-Owner dürfen alle Einstellungen des Repositorys ändern. Sie dürfen es auch löschen.
  2. Maintainer entscheiden, welcher Code in das nächste Release der Software aufgenommen wird.
  3. Contributor liefern Beiträge zum Quellcode, die Maintainer annehmen können, aber nicht müssen.

Quellcode im Repository ablegen

Sorgen Sie für eine nachvollziehbare Struktur der Ordner und Dateien, in der der Quellcode abgelegt wird.
Auf den gängigen Plattformen gibt es Beispiele und Hilfestellung für funktionierende Strukturen und wichtige Inhalte wie Skripte, Dateien, Informationen zum Service.
Der Aufbau hängt dabei vom eingesetzten Framework und der Programmiersprache ab.

Versionierung

Versionierung hält fest, wie sich der Quellcode verändert. Sie zeigt jede Änderung im Verlauf der Entwicklung.

Die Open Source Software Git übernimmt die Versionierung des Quellcodes.
Stellen Sie sicher, dass Ihr Repository Git unterstützt.

Dokumentation

Dokumentieren Sie den Quellcode und ein README zum digitalen Angebot.
Legen Sie alle Dokumente im gleichen Repository ab.

Erstellen Sie die Dokumentation während der Entwicklung. Nachträgliche Dokumentation ist häufig aufwändig.

Zu einer guten Dokumentation gehören

  • System-Dokumentation
  • Installationsanleitung
  • Roadmap
  • Handbuch zur Nutzung

Veröffentlichen der automatisierten Deployment-Prozesse

Automatisierte Prozesse zur Auslieferung der Software sind Teil der Software-Entwicklung. Man spricht dabei von Deployment-Pipelines. Achten Sie darauf, dass auch die Deployment-Pipelines als Open-Source-Software zur Verfügung stehen.

Veröffentlichen von Container-Images

Damit die Nachnutzung für andere Behörden möglichst einfach ist, sollten auch Container-Images der gebauten Software veröffentlicht werden.

Ein Image kann man sich als eine große Datei vorstellen, in dem

  • der Quellcode,
  • alle erforderliche abhängige Software,
  • alle erforderlichen Konfigurationen enthalten sind.

Das Image kann auf einem Zielsystem mit einem Befehl zum Laufen gebracht werden.

Quellcode im Repository pflegen

Wenn Sie Software veröffentlichen, sollten Sie regelmäßig Updates durchführen und bereitstellen. Auch wenn es keine neuen Features gibt, müssen Security-Probleme schnell und Lifecycle-Maßnahmen rechtzeitig geliefert werden.

Lifecycle-Maßnahmen können zum Beispiel die Hebung der Software auf eine neue Version des genutzten Frameworks oder der genutzten Programmiersprache. Rechtzeitig heißt: bevor der Support der Version ausläuft.

Die Releases, Veröffentlichungen, werden in den Release-Notes beschrieben.

Erfahrungen aus der Praxis

Sobald auch andere Behörden Ihre Software nachnutzen, stellt sich die Frage, wie mit den Anforderungen verschiedener Behörden umgegangen wird.

Bei der Nachnutzung teilen Sie sich die Wartung und Weiterentwicklung mit anderen Behörden, dann benötigen Sie ein Produkt-Management, das sich darum kümmert, die Anforderungen der unterschiedlichen Behörden

  • zu verstehen
  • zu priorisieren
  • in die Roadmap des Produkts einfließen zu lassen und die Roadmap zu kommunizieren

Wenn die verschiedenen Behörden Entwicklerinnen und Entwickler einsetzen, muss die Entwicklungs-Community koordiniert werden. Alternativ beteiligen sich die Behörden nur finanziell und die Produktentwicklung erfolgt durch einen Softwarelieferanten.

Verwandte Anleitungen

Hilfreiche Fachgebiete

Die genannten Fachgebiete und ihre Beschreibungen dienen als Orientierung. Sie zeigen auf, mit welchem Wissen und mit welchen Fähigkeiten die Punkte am besten umgesetzt werden können.

DevOps-Entwicklung

DevOps-Entwickler und -Entwicklerinnen automatisieren Abläufe, um Software schneller und stabiler bereitzustellen. Sie setzen Versionskontrolle und Build-Pipelines ein, damit Änderungen effizient umgesetzt werden können. DevOps-Entwickler und -Entwicklerinnen beschreiben Infrastruktur als Code, damit Systeme reproduzierbar und flexibel bleiben. Sie überwachen Anwendungen kontinuierlich und analysieren Fehler, um den Betrieb zu sichern.

Software-Entwicklung

Software-Entwickler und -Entwicklerinnen schreiben Code in relevanten Sprachen, um Funktionen umzusetzen. Sie verwalten Änderungen im Code, um Nachvollziehbarkeit zu sichern. Sie prüfen die Qualität in Code-Reviews, um das Risiko von Fehlern zu reduzieren. Software-Entwickler und -Entwicklerinnen dokumentieren den Code so, dass er für andere verwendbar ist. Software-Entwickler und -Entwicklerinnen nehmen Software in Betrieb und halten sie funktionsfähig.

System-Administration

System-Administratoren und -Administratorinnen konfigurieren und verwalten die IT-Infrastruktur. Dazu gehören unter anderem Server, Netzwerke, damit digitale Angebote stabil laufen. System-Administratoren und -Administratorinnen führen Wartungen und Updates durch und überwachen die Leistung. Sie passen Systeme an steigende Nutzung an und sichern Daten regelmäßig, um sie im Notfall wiederherzustellen.

Zu allen hilfreichen Fachgebieten

Wichtig in diesen Entwicklungsphasen

Jedes digitale Angebot durchläuft verschiedene Phasen. Die 4 Phasen zur Entwicklung nach Servicestandard helfen Teams, strukturiert vorzugehen, die richtigen Schwerpunkte zu setzen und Entscheidungen zum passenden Zeitpunkt zu treffen.

Entwickeln

In der Phase „Entwickeln" entsteht das digitale Angebot Schritt für Schritt. Lösungen werden von Personen mit verschiedenem Fachwissen gemeinsam erarbeitet. Lösungsansätze werden getestet, angepasst und ausgebaut. Die technische Entwicklung basiert auf offenen Standards und Open Source. Mit diesem Vorgehen reift der Service und wird betriebsbereit.

Betreiben

In der Phase „Betreiben" wird das digitale Angebot zuverlässig bereitgestellt. Die Wirkung des Services zeigt sich in regelmäßigen Messungen. Die technische Pflege sichert die Funktionsfähigkeit. Anpassungen werden vorgenommen, wenn Testergebnisse oder Feedback dies erforderlich machen. Der Service ist stabil und schafft dauerhaft Vertrauen.

Weiterentwickeln

In der Phase „Weiterentwickeln" wird das digitale Angebot an veränderte Bedingungen angepasst. Neue Bedürfnisse, technische Entwicklungen und rechtliche Änderungen führen zu erweiterten Anforderungen. Lösungen entstehen aus der Verbindung bewährter Bausteine mit neuen Elementen. Offene Standards und Open Source sichern die Nachvollziehbarkeit. Die Weiterentwicklung hält den Service aktuell, wirksam und nutzerfreundlich.

Alle 4 Entwicklungsphasen

Geben Sie uns Feedback

Ihr Feedback hilft uns, den Servicestandard an den Bedürfnissen der Nutzenden auszurichten. Beschreiben Sie Ihr Anliegen so detailliert wie möglich. Geben Sie keine persönlichen Daten ein.

Feedback eingeben

E-Mail Adresse für Rückfragen angeben. Das ist optional

Hinweis

Ihr Feedback wird auf opencode.de veröffentlicht