Die Vor- und Nachteile von ClearCase
von Benedikt
Was ich selbst von ClearCase halte, habe ich ja bereits deutlich gemacht – aber ich habe mal sehen wollen, was denn andere Entwickler so davon halten. Daher hatte ich vor ungefähr einem Jahr auf Stackoverflow die Frage nach den Vor- und Nachteilen von ClearCase gestellt.
Mittlerweile wurde der Artikel mehr als 3000 mal geklickt, hat 27 Antworten und eine intensive Diskussion produziert. Obwohl sich tatsächlich auch einige Leute gefunden haben, die ein paar Vorteile von ClearCase aufzeigen, ist doch die Mehrheit der Antworten damit beschäftigt Nachteile aufzuzeigen. Für mich kommt das natürlich nicht wirklich überraschend, aber es ist doch interessant zu sehen, dass es nicht nur daran liegt, dass ich keine Ahnung von ClearCase habe.
Was mich seit ich ClearCase kenne immer gewundert hat, ist dass es mindestens eine Person braucht, die sich um nichts anderes kümmert und andere Leute sehen das ebenfalls so:
The very fact that it’s complicated enough to require a full-time nanny is also worrying.
Auch immer noch ein Rätsel ist mir der Zweck der Dynamischen Views in ClearCase – seit wir wieder darauf umgestellt hatten, haben wir gemerkt, dass das Resultat davon, dass man sofort alle Änderungen sieht, ist dass man sofort alle Fehler hat, die jemand anders gemacht hat. Auch das war Thema der Diskussion:
Dynamic views are terrible unless you are in a very small team. And if that’s the case, why do you even have ClearCase? I have seen countless people’s views getting hosed because someone checked in files that broke the views of everyone else. You should always update and merge any conflicts on your own view. That way, the changes only affect you. With a dynamic view, you cannot merge down before pushing back up; you just commit and hope.
Dann habe ich noch einen nicht ganz ernst gemeinten Ratschlag bekommen, der zwar für uns leider nichts gebracht hat, weil ja ClearCase schon gesetzt war, den ich aber wegen seinem Unterhaltungswert hier wiedergeben möchte:
If you need an argument to convince people not to use ‘clearcase’, you can say that all the good developers hate it. I know, I wouldn’t work at any place who used clearcase as their source control. Heck, I would gladly suffer the pain of VSS to avoid clearcase.
Wer möchte kann sich einfach mal die ganze Diskussion auf Stackoverflow durchsehen – es sind echt ein paar interessante Kommentare dabei.
Als Schlusswort möchte ich noch diesen Kommentar zitieren, den ich so voll und ganz unterschreiben könnte:
If you’re considering integrating ClearCase into your development environment, I can offer only one piece of advice: don’t.
Kommentare
In der auf Stackoverflow geführten Diskussion gibt es meiner Ansicht nach nur wenige wirklich Objektive Kommentare. Den besten finde ich von Nick Bastin http://stackoverflow.com/questions/1074580/clearcase-advantages-disadvantages/1139791#1139791. Hier wird endlich einmal versucht die Diskussion von der Toolseite wegzubringen. Letztendlich ist SCM ein Thema das komplex ist und das einen Entwickler immer nerven wird. Aber dummerweise ist SCM (und da ist Versionskontrolle nur ein Teil davon) nunmal in modernen Softwareentwicklungsprojekten notwendig und damit muss man sich als Entwickler nun einmal herumschlagen. Jedes Tool und damit auch jeder Toolanbieter das/der behauptet man bräuchte keinen SCM-Administrator lügt und ist damit unseriös. Als SCM-Administrator ist man dafür verantwortlich die richtigen Prozesse für die Anwender zu implementieren und die Bedienung eines zusätzlichen Tools wie ClearCase so einfach wie möglich zu machen. Alle Punkte die in den Diskussionen genannt worden sind kann man immer auf die verschiedensten Arten und Weisen angehen. Eine Lösung gibt es immer. Dynamische Views sind zu langsam für bestimmte Builds? Das Netzwerk ist zu langsam? OK, lasst uns überlegen für welche Aufgaben wir dynamische Views verwenden und für welche Snapshot views. Ein update meiner 10K Dateien dauert zu lange? OK, lasst uns überlegen wie man die Anzahl der zu aktualisierenden Dateien reduziert. (Warum muss man eigentlich immer den gesamten Datenbestand (als das gesamte Repository) mit sich rumschleppen Etc., etc.
Wenn ich in einem Forum die Frage stelle “Sag mir mal was es für Vor- und Nachteile von …. gibt” dann ist es nicht verwunderlich dass alle ihre persönlichen schlechten Erfahrungen posten. Aber es sind immer einzelne Schlaglichter, negative Erfahrungen eines einzelnen die man bekommt. (Und oft genug sind das dann so qualifizierte Bemerkungen wie “Uah, was hat das für ein hässliches GUI!”) Und wie ich schon gesagt habe, so gibt es für jeden Punkt der genannt wurde sicherlich eine Lösung.
SCM ist etwas was in Form von Trainings an die Endanwender herangetragen werden muss. Das ist zunächst einmal Toolunabhängig. Und SCM heisst nicht ein bisschen Versionskontrolle mit CVS oder SVN machen. Klar das kann sich jeder zu Hause selbst beibringen. Wunderbar. Und deshalb tauchen ja in den Kommentaren auch immer wieder die Sätze auf wie “in CVS mach einfach” oder “Bei SVN kann ich einfach”. Aber das ist noch lange kein SCM. Sorry, so ist nun mal das Leben. Softwareentwicklung ist nunmal ein komplexes Geschäft, aber mit SCM Tools wie ClearCase kann man versuchen die Komplexität zu beherrschen. Ein SCM-Tool auszusuchen bedeutet immer, dass man sich über seine Anforderungen im Klaren ist und das man die verschiedenen Optionen sorgfältig evaluiert. Aber eine Aussage zu treffen wie “ClearCase kann man nicht nehmen weil es komplex ist” ist ebenso zu kurz gedacht wie “Kauf bloss keinen Mercedes, ich habe gehört dass darin Menschen bei Unfällen gestorben sind.”
Vielen Dank für den Kommentar. Ich finde es sehr interessant, auch mal die Herstellerseite beleuchtet zu sehen.
Aber genauso wie die Diskussion bei Stackoverflow als nicht ganz objektiv betrachtet werden kann, ist auch das was der Hersteller über sein Tool sagt, nicht unbedingt hundertprozentig objektiv.
Ich bin jedenfalls froh, dass ich mittlerweile nicht mehr mit ClearCase arbeiten muss