Teamarbeit unterstützen mit Versionierung

Versionierung als Mittel zur Qualitätsverbesserung in der Softwareentwicklung

Versionierung ist mittlerweile ein zentraler Begriff, wenn es um verteiltes Arbeiten an Software-Code, kooperatives Entwickeln und effektives Programmieren geht. Da die Thematik „Was ist Versionsverwaltung?“ schon zur Genüge abgehandelt wurde, gehe ich gleich zum Kern dieses Beitrags weiter: Auswahl und Einsatz eines geeigneten Versionierungs-Tools.

Git und SVN teilen sich den Großteil des Markts

Die Wahl des richtigen Werkzeugs zur Versionierung des Software- Entwicklungsprozesses ist sehr wichtig, da ein geeignetes Tool die Kommunikation im Team, die Distribution von Code und die Beurteilung von neuem Code verbessern kann. Wenn ein Team entsprechend eingespielt ist, kann es mit Hilfe der Versionierung viele Team-dynamische Prozesse entschlacken, um Zeit für andere Herausforderungen frei zu legen.
Die Hauptvertreter sind die Open Source-Tools Git und Apache Subversion (SVN) (siehe Abbildung 1).

Versionierungssoftware im Einsatz 2014: Subversion 48%, Git 38%, CVS 9%, Mercurial 3%, Bazaar 2%

Abbildung 1: Die Open Source-Tools Git und Subversion (SVN) sind die Hauptvertreter im Markt für Versionierungs-Software

Andere Software-Tools kommen da nicht heran: Bazaar und Mercurial haben mit Markanteilen von 2 beziehungsweise 3 Prozent kaum eine Bedeutung. Von Concurrent Versions System (CVS), das 2014 einen Anteil von 9 Prozent hatte, wurde die Entwicklung mittlerweile komplett eingestellt.

Git und SVN teilen sich den Markt im Wesentlichen untereinander auf, wobei SVN derzeit die Oberhand hat, Git in den letzten Jahren aber an Boden gewonnen hat (siehe Abbildung 2).

 

Git und Subversion (SVN) sind die populärsten Versionierungstools. Versionierungs-Software hilft, die Qualität in der Software-Entwicklung zu steigern

Abbildung 2: Die populärsten Versionierungs-Tools im direkten Vergleich: SVN führt, Git holt auf

SVN ist sehr gut geeignet für Projekte, bei denen die Anzahl an mitwirkenden Personen minimal ist – optimal, wenn ein Entwickler alleine an einem Projekt arbeitet. Git zeigt seine Stärken beim Zusammenarbeiten vieler Parteien und kann durch das geschickte Nutzen der Strukturen wie Branches (Erstellen neuer Entwicklungszweige) das Projektmanagement wesentlich erleichtern. Jedoch bringt Git dadurch eine erhöhte Einstiegshürde mit sich: Es ist schlicht und ergreifend mehr Lernaufwand, bis man die Software effektiv einsetzen kann. Dafür erhält man ein mächtiges Tool, welches die aktuellen Anforderungen an eine Versionierungssoftware umsetzt.

Tipps für den Einsatz im Team

Auf die Art wie Git und SVN technisch einzusetzen sind, gehe ich hier nicht weiter ein, da es für diesen Aspekt mehr als genug Beschreibungen gibt, gute Quellen sind etwa https://www.atlassian.com/git/ oder http://git-scm.com/. Vielmehr steht in diesem Beitrag der Einsatz von Versionierungssoftware im Team im Fokus. Der wichtigste Punkt, über den sich alle Beteiligten einig sein müssen, ist, dass man lernen muss, mit der Software umzugehen. Entsprechend sollte man genügend Zeit einplanen, um sich mit den Funktionen auseinander zu setzen. Nur dann ist der effektive Einsatz gewährleistet.
Empfehlenswert ist es auch, einen Git- beziehungsweise SVN-Master zu ernennen – eine Person, die sich weit über die Grundlagen mit der Versionsverwaltungssoftware auseinander setzt, um anderen im Team mit Rat zur Seite zu stehen, falls etwas nicht entsprechend funktioniert.
Als letzten Punkt möchte ich noch ansprechen, dass in Betracht gezogen werden sollte, Guidelines für die Benutzung einer Versionsverwaltungssoftware zu erstellen. Damit wird eine unternehmensweit einheitliche Benutzung gewährleistet, und neuen Projektmitarbeitern fällt die Verwendung der Versionierungssoftware leichter.

Fazit

Der richtige Einsatz von Versionierungssoftware bringt einige Vorteile. Er:
• fördert Kooperation im Team
• erhöht die Code-Verfügbarkeit
• erleichtert Code Reviews
• verbessert die Dokumentation der Evolution des Codes

Quellennachweis

Abbildung 1:
https://www.openhub.net/repositories/compare
Abbildung 2:
http://programmers.stackexchange.com/questions/136079/are-there-any-statistics-that-show-the-popularity-of-git-versus-svn

Posted in Uncategorized.