Die Organisation muss dokumentierte Informationen zu Entwicklungsergebnissen aufbewahren.
ISO 9001, Kapitel 8.3

Die Qualitätsmanagementnorm ISO 9001 (2015) fordert hier etwas, was bei der Entwicklung von Software-Produkten mit dem Einsatz von Versionsverwaltungsystemen realisiert wird. Solche Systeme helfen, Quelltexte und binäre Artefakte zu verwalten und zu versionieren. Zugriffe lassen sich mit einer Versionsverwaltung ebenfalls koordinieren. Änderungen werden protokolliert und Entwickler können an verschiedenen Teilen des Produktes zur gleichen Zeit arbeiten.

Ergebnisse des agilen Entwicklungsprozesses werden in der quelltext-basierte Versionsverwaltung Git nachvollziehbar und in der Regel vollkommen automatisch zusammengeführt. Nur im Fall von Änderungen an der gleichen Stelle müssen Entwickler manuell eingreifen und die Konflikte selbst lösen.

Git ist eine quelltext-basierte verteilte Versionsverwaltung. Es sichert den Zustand sämtlicher Dateien in diesem Moment („Snapshot“) und speichert eine Referenz auf diesen Snapshot. Die meisten Operationen in Git benötigen nur lokale Dateien und Ressourcen. In Git werden Änderungen in Checksummen umgerechnet, bevor sie gespeichert werden.

Weiterlesen auf https://git-scm.com/book

Das Thema Wiederverwendung spielt immer noch eine wichtige Rolle in der Software-Entwicklung. Speziell Open-Source-Software versetzt uns in die Lage, auf bewährte und vielfach eingesetzte Implementierungen zurückzugreifen. Wiederverwendung von Bibliotheken ist jedoch kompliziert. Es erfordert eine Verwaltung von Abhängigkeiten. Build-Management mit gradle oder maven helfen uns bei der Lösung des Problems.

Ein Maven-Repository sichert wiederverwendbare Entwicklungsergebnisse, z.B. Programmbibliotheken. Jedes Artefakt im Maven-Repository hat eine Version und kann als Abhängigkeit in anderen Komponenten angegeben werden. Beim Bauen einer Komponenten werden die Programmbibliotheken durch das Maven-Repository für den Download bereitgestellt.

Weiterlesen auf https://search.maven.org/

Docker erleichtert unseren Entwicklern den Alltag. Eine Software-Komponente und alles, was für ihre Ausführung notwendig ist, befindet sich in einem Paket. So ein Docker-Image wird in einer Docker-Registry gespeichert und läßt sich leicht im Netzwerk verteilen. Ein Docker-Image kann beliebig oft und auf verschiedenen Plattformen ausgeführt werden.

Eine Docker-Registry ist eine Versionsverwaltung für Docker. Jedes dort gespeicherte Docker-Image hat eine Version. Die Docker-Registry stellt Docker-Images für den Download bereit.

Weiterlesen auf https://docs.docker.com/registry/

Mit dem Einsatz von Versionsverwaltungssystemen werden die Anforderungen der ISO 9001 an die Aufbewahrung der Ergebnisse unserer agilen Entwicklungsprozesse erfüllt. Git ist mit Sicherheit die wichtigste Versionsverwaltung. Auf Basis der dort gespeicherten Daten lassen sich alle anderen Entwicklungsergebnisse jederzeit wiederherstellen.