Welche Versionskontrollsysteme gibt es und wofür setzt man sie ein?

Welche Versionskontrollsysteme gibt es und wofür setzt man sie ein?

Andreas Otto
von Andreas Otto

Einleitung

In den vergangenen Jahren haben sich Versionskontrollsysteme (engl. Version Control System, Abkürzung VCS) zu einem unverzichtbaren Werkzeug für Softwareentwickler entwickelt.

Mit einem VCS können Entwickler ihre Arbeit an einem Projekt tracken und verschiedene Versionen miteinander vergleichen. VCS Systeme sind in der modernen Softwareentwicklung absolut unverzichtbar, und bei der Erteilung von Softwareentwicklungsaufträgen z.B. Erstellung von Websites oder Onlineshops, sollte unbedingt darauf geachtet werden, dass der Dienstleister ein entsprechendes VCS einsetzt - und idealerweise auch ein Kundenportal, welches mit dem VCS verbunden ist.

In diesem Artikel werden die verschiedenen Arten von VCS erläutert und diskutiert, für welche Projekte sie am besten geeignet sind.

Die verschiedenen Systeme im Überblick, und deren Vorteile und Nachteile

Die häufigsten VCS sind Mercurial, Subversion und Git. Sie alle haben ihre Vor- und Nachteile, die je nach Bedarf unterschiedlich stark ins Gewicht fallen können.

Mercurial

Mercurial ist ein freies, quelloffenes Distributed Version Control System (DVCS). Ein DVCS verwaltet sowohl die Versionshistorie als auch das Arbeitsverzeichnis eines Projektes lokal auf dem jeweiligen Rechner und greift nicht wie herkömmliche VCS-Systeme auf einen zentralen Server zu. Durch dieses Verfahren kann jeder Entwickler unabhängig voneinander an seiner Version der Software weiterarbeiten und muss sich erst bei Abschluss seiner Änderungen mit den anderen abstimmen. Ein großer Nachteil von Mercurial ist allerdings, dass es keine langjährige Tradition besitzt wie Subversion oder Git. Zudem gibt es nicht viele integrierte Entwicklungsumgebungen (IDE), die Mercurial unterstützten. Es spielt daher in der aktuellen Webentwicklung im Vergleich zu Subversion oder Git eher eine etwas untergeordnete Rolle.

Subversion

Subversion ist ein freies Revisionskontrollsystem. Es verwaltet Dateien und Verzeichnisse sowie deren historische Versionen. Es bietet ebenfalls Funktionen zum Trennen (Branching) und Zusammenführen (Merging) von Veränderungen an verschiedenen Quelltextdateien, aber auch in binären Dateien. Subversion gehört seit einiger Zeit zur Apache Foundation.

Git

Git ist ein verteiltes System, das bedeutet, dass jeder Entwickler seinen eigenen lokalen Kopien der Projektdateien hat. Die zentrale Serverkopie des Projekts wird erst aktualisiert, wenn der Entwickler seine Änderungen explizit dorthin committet. Das hat den Vorteil, dass man auch offline arbeiten kann und die Arbeit an verschiedenem Teilprojekten parallel vorantreiben kann, ohne sich gegenseitig im Weg zu stehen. Allerdings ist es hier besonders wichtig regelmäßig zu committen und die neuste Version des Projekts vom Server herunterzuladen (Pull), da sonst leicht Fehler auftreten könnnen. Git ist der heutige Quasi-Standard im Bereich der Online- und Webentwicklung.

Welche Git-Anbieter gibt es

Es gibt verschiedene Git-Anbieter, darunter GitHub, Bitbucket und GitLab. Diese drei Anbieter teilen sich ungefähr 95% des weltweiten Marktes auf. Daneben existieren mit AWS CodeCommit und Azure DevOps noch zwei Lösungen von Amazon und Microsoft, die allerdings nur auf einen sehr kleinen Marktanteil kommen und in erster Linie z.B. bei Microsoft-Partnerunternehmen oder Microsoft-Dienstleistern anzutreffen sind.

Die drei großen Anbieter sind GitHub, BitBucket und GitLab.

GitHub

GitHub ist der größte und bekannteste Git-Anbieter. Die Plattform wird vor allem für Open Source Projekte genutzt, doch auch zahlreiche kommerzielle Unternehmen setzen auf GitHub, darunter Microsoft, Google und Amazon. GitHub gehört mittlerweile zu Microsoft und wird von den USA aus betrieben. Die USA gehört wie Russland und China aus deutscher Datenschutz-Perspektive zu den unsicheren Drittländern. Trotzdem setzen viele Unternehmen aus Deutschland auf GitHub als Lösung, auch wenn sie sich damit gegebenefalls in einer Grauzone bewegen.

Bitbucket

Bitbucket ist ein von Atlassian entwickelter Service und richtet sich in erster Linie an professionelle Entwicklerteams. Bitbucket biete neben dem Hosting von privaten Git Repositories auch eine Reihe nützlicher Features, wie etwa integrierte CI/CD oder Jira Integration an.

GitLab

GitLab hingegen setzt vollständig auf Self-Hosted Lösungen und bietet seinen Kunden daher die Möglichkeit ihr gesamtes Software Development Lifecycle in einer Hand zu haben - vom ersten Commit bis zur Verwaltung des Deployment Pipelines. GitLab wurde 2011 ursprünglich von den Ukrainern Dmitri Saparoschez und Valery Sizov mithilfe von Ruby on Rails entwickelt. MIttlerweile ist GitLab ein Open-Core-Unternehmen, das Software für den Lebenszyklus der Softwareentwicklung entwickelt und schätzungsweise 30 Millionen registrierte Benutzer und mehr als 1 Million aktive Lizenzbenutzer hat.

Das fehlende Kundenportal

Alle Anbieter haben eines gemeinsam: Sie richten sich an Programmierer und erfahrene Mitarbeiter in Unternehmen, die sich mit den Prozessen der Softwareentwicklung auskennen und diese täglich leben. Im Umkehrschluss sind diese Tools zur Benutzung von Endkunden völlig ungeeignet. Und das ist auch Okay so, denn es handelt sich schließlich um eine Spezialsoftware und der Spagat wäre viel zu groß, wollte man die Software “Enduser-tauglich” machen.

Trotzdem stellt sich nun die Frage: Wo bleibt der Kunde?

Kunden wollen am Projektablauf beteiligt sein

.. und vor allem die Ergebnisse sehen. Doch was, wenn die Kunden keine IT-Experten sind (was sie meistens nicht sind)? Müssen Sie sich in diesem Fall ausschließlich auf das Wort ihres Dienstleisters verlassen? Nein!

Transparenz

Eine gute Kundenzufriedenheit erfordert heutzutage einen hohen Grad an Transparenz in den Projekten. Diese kann durch ein geeignetes Kundenportal hergestellt werden, welches sich direkt mit dem Versionskontrollsystem (GitHub, BitBucket oder GitLab) verbinden lässt.

Prozesse

Neben Transparenz spielen Prozesse eine wichtige Rolle in Projekten. Auch hier kann ein Kundenportal weiterhelfen, denn es bietet die Möglichkeit für den Kunden selbst Tasks zu erstellen und anzuzeigen.

Verantwortlichkeiten

Zu guter letzt geht es um die Verantwortlichkeiten zwischen Dienstleister und Kunde. Wieder kann durch ein Kundenportal eine engere Zusammenarbeit hergestellt werden.

Die Vorteile eines Kundenportals liegen also auf der Hand. Durch Transparenz, Prozesse und Verantwortung kann die Zusammenarbeit zwischen Dienstleister und Kunde verbessert werden.

Dies ist nur eine kleine Auswahl von Vorteilen, welche ein Kundenportal mit sich bringt.

nevi ist die Lösung für ein Kundenportal für Softwareentwicklungsprojekte

Mit nevi schaffst du als Dienstleister ein optimales Kundenerlebnis, vom Onboarding bis zum Projektabschluss. Denn nevi hilft lästige Routineaufgaben in Projekten zu vereinfachen. nevi verbessert die Kommunikation, automatisiert Prozesse und schafft Verantwortlichkeiten. Damit auch der Kunde seinen Beitrag zu einem optimalen Projektablauf leistet, beispielsweise wenn es um rechtzeitige Tests und Abnahme geht.

---

Ein geeignetes Kundenportal ist also entscheidend, wenn man den Projektablauf transparent gestalten und dem Kundenteam zeigen möchte. Es lohnt sich also, in einen solchen Service zu investieren!

Andreas Otto
Andreas Otto

Noch keine Kommentare vorhanden

Was denkst du?

© 2022 workingbits GmbH
DatenschutzImpressum
..
Mehr