Die Versionskontrolle bei der Softwareentwicklung wird häufig gar nicht oder auch falsch angewendet. Dabei kann die richtige Versionskontrolle maßgeblich zum Erfolg des Vorhabens beitragen. Warum das so ist und welche Hürden zu beachten sind, erklärt Senior Consultant Software Engineering Thomas Schulte.
Thomas, wer sollte sich mit dem Thema Versionskontrolle auseinandersetzen?
Allgemein formuliert, sollte sich jeder damit auseinandersetzen, der an Dateien arbeitet und die Änderungen an diesen Dateien verfolgen möchte. Das betrifft nicht nur Entwickler im operativen Bereich, sondern genauso Projektverantwortliche. Denn diese geben beispielsweise vor, welche Releases erstellt werden müssen und Releases sind ein wichtiger Aspekt der Versionskontrolle.
Nehmen wir uns den Begriff „Versionskontrolle“ an dieser Stelle vor. Inwiefern gibt es eine einheitliche Definition?
Es besteht dahingehend ein gewisser Wildwuchs. Wir sprechen bei Versionskontrolle über das „Version Control System“ (VCS). Oft hört man auch „Revision Control System“ (RCS). Aber dabei handelt es sich ursprünglich um ein einzelnes Tool aus dem Bereich der Versionskontrolle.
Was versteht man inhaltlich unter VCS?
Vielleicht hilft es, wenn wir uns an dieser Stelle vom Softwarekontext lösen. Denken wir an das Verfassen eines Buches. Dabei hat die Autorin oder der Autor die Möglichkeit, verschiedene Fassungen von dem Buch vorzuhalten. Er kann beispielsweise in einer Textdatei Änderungen vornehmen oder bestimmte Stände markieren. Damit wird der Zugriff auf unterschiedliche Versionen möglich. Dieses Beispiel lässt sich wiederum auf den Bereich Software übertragen.
Könntest du das näher erläutern?
Prinzipiell möchte ich durch Versionskontrolle erreichen, dass ich mehrere Dateien in unterschiedlichen Ständen vorhalten kann. Je größer des Softwarestand ist, desto mehr Komponenten und Dateien sind im Einsatz. Die zusammengehörigen Stände kann ich versionsverwaltet ablegen. So bringe ich eine Struktur in die Quellen meines Source Codes und das ist wichtig für den Erfolg meines Entwicklungsvorhabens.
Welche konkreten Vorteile ermöglicht die richtige Versionskontrolle?
Ganz klar. Wenn ich strukturierter arbeite, bin ich immer schneller. Jegliche Änderungen können nachverfolgt und sämtliche Stände reproduziert werden. Dadurch erleichtert mir die richtige Versionskontrolle die Bereitstellung neuer Features. Ich entwickle diese beispielsweise auf einem neuen Branch und kann dann festlegen, ab wann dieses Feature in ein Produkt einfließen kann.
Oder ich gehe den Weg in die andere Richtung. Da sprechen wir über die Reproduzierbarkeit. Ich möchte einen alten Datenstand abrufen, weil ich vielleicht einen Bug Fix einfügen möchte oder der Kunde selbst noch alte Hardware nutzt, die gar nicht direkt neue Features nutzen kann.
Wo hakt es deiner Erfahrung nach oft bei der Versionskontrolle in Organisationen?
Tatsächlich habe ich Projekte kennengelernt, bei denen keine wirkliche Versionskontrolle vorhanden war. Da gab es Archive, deren Inhalt überhaupt nicht zueinander passte. Das erschwert die Softwareentwicklung ungemein. Ich kann unter anderem keine zuverlässigen Aussagen über den Stand des Projekts oder einzelner Ziele machen. Häufigster Fehler ist die falsche Verwendung der Versionskontrolle.
Welche Hürden gilt es bei der Einführung zu überwinden?
In jedes Werkzeug muss man sich erstmal einarbeiten. Dafür braucht es eine gewisse Zeit. Die Mitarbeitenden müssen geschult und ein gemeinsames Verständnis entwickelt werden. Dabei ist dieses Investment meiner Ansicht nach immer durch das Ergebnis gerechtfertigt.
Hinzu kommt die steigende Internationalität der Teams. An Projekten wird standortübergreifend gearbeitet. Wenn es da keine Versionskontrolle gibt, wird die Entwicklungsarbeit ein ziemliches Chaos. Infolgedessen kann sich die Kombination mehrerer Komponenten zu einem Release über Monate hinziehen. Mit Versionskontrolle verkürzt sich dieser Prozess enorm auf ein paar Tage.
DevOps&ALM-Beratung@Windhoff Group
Warum sollten Unternehmen DevOps- oder ALM-Projekte gemeinsam mit der Windhoff Group angehen? Ganz einfach, weil Windhoff vollumfängliche Lösungen mit Kopf anbietet. Und das ist wortwörtlich gemeint. Windhoff verfügt über das gewünschte Know-how UND den passenden Windhoffler dazu. Dabei kommt die Erfahrung aus über 20 Jahren in der Softwareentwicklung bei der Gestaltung und dem Betrieb von Entwicklungsumgebungen zur Geltung. Dementsprechend wissen unsere Experten um die Komplexität von Konzeption, Einführung, Betrieb und Support von DevOps und ALM-Lösungen.
Mehr Informationen und unseren Check-Up „Tool-Chain“ gibt es hier .